驱动数字世界的算法

The algorithms that

power the digital world

克里斯·布莱克利

CHRIS BLEAKLEY

致艾琳 — — 谢谢你。

For Eileen – thank you.

泥炭媒体

Peat Media

奥斯滕堡沃斯街 166 号

Oostenburgervoorstraat 166

1018 MR 阿姆斯特丹

1018 MR Amsterdam

第一版,2023年2月

First edition, February 2023

标题

Title

如果这样,那么那样

If this, then that

驱动数字世界的算法

The Algorithms That Power the Digital World

作者

Author

克里斯·布莱克利

Chris Bleakley

原版

Original edition

© Chris Bleakley 2020 解谜诗歌:算法的历史与科学原版英文版于2020年出版。本译本经牛津大学出版社授权出版。Veen Media 全权负责翻译原著,牛津大学出版社对译本中的任何错误、遗漏、不准确或歧义,或因依赖译本而造成的任何损失概不负责。

© Chris Bleakley 2020 POEMS THAT SOLVE PUZZLES The History and Science of Algorithms was originally published in English in 2020. This translation is published by arrangement with Oxford University Press. Veen Media is solely responsible for this translation from the original work and Oxford University Press shall have no liability for any errors, omissions or inaccuracies or ambiguities in such translation or for any losses caused by reliance thereon.

出版商

Publisher

吉姆·詹森

Jim Jansen

生产协调

Production coordination

芬娜·范德格林特

Fenna van der Grient

翻译、编辑和索引

Translation, editing and index

艾里克·维尔穆伦

Erick Vermeulen

社论

Editorial

Serpenti 文字护理

Serpenti text care

图像研究与编辑

Image research and editing

里基·戈里森

Rikie Gorissen

平面设计封面

Graphic design cover

格拉菲卡别墅

Villa Grafica

设计和布局

Design and layout

Sagor – 图形制作

Sagor – graphic productions

印刷和装订

Printing and binding

威尔科

Wilco

© Veen Media,阿姆斯特丹,2023

© Veen Media, Amsterdam, 2023

ISBN: 9789085718079 / NUR: 980

ISBN: 9789085718079 / NUR: 980

本书之前是作为科学图书馆系列丛书的一部分出版的,名为 《算法》

This book was previously published as part of the Scientific Library series, entitled Algorithms .

尽管本书编撰精益求精,但编辑、出版商和作者均不对因出版物中任何错误而造成的任何损害承担责任。插图和照片的使用已尽可能征得版权所有者的许可。如果您认为版权所有者的许可不足,请联系出版商。

Despite the care taken in compiling this text, neither the editors nor the publisher nor the author can accept liability for any damage that may result from any error that may occur in this publication. For the use of illustrations and photographs, permission has been requested from the copyright holders as far as possible. Those who nevertheless believe that this has not been done sufficiently in their opinion are requested to contact the publisher.

未经出版商书面许可,不得以任何形式(包括印刷、影印、缩微胶卷或任何其他方式)复制和/或出版本书的任何部分。

No part of this book may be reproduced and/or published in any form, by print, photocopy, microfilm, or any other means without written permission by the publisher.

前言

Foreword

本书适合那些知道算法很重要但不知道算法是什么的人。

This book is for people who know algorithms are important but have no idea what they are.

这本书的灵感源于我在都柏林大学计算机科学学院担任公共信息总监期间。在与家长和高中生的数百次交谈中,我意识到,由于谷歌、Facebook 和剑桥分析公司等媒体的广泛报道,大多数人都了解算法。然而,很少有人知道算法是什么,它们如何工作,以及它们从何而来。这本书解答了这些问题。

The inspiration for the book came to me when I was working as Director of Public Information at University College Dublin School of Computer Science. In hundreds of conversations with parents and high school students, I realized that most people are aware of algorithms thanks to the extensive media coverage of Google, Facebook and Cambridge Analytical. However, few know what algorithms are, how they work and where they come from. This book answers those questions.

本书面向普通读者,无需任何算法或计算机方面的知识。但我认为,即使是计算机科学专业的学生,​​也会觉得书中的故事令人惊喜、有趣且富有启发性。对算法有一定了解的读者,或许可以跳过引言部分。我的目标是让读者在阅读过程中享受阅读的乐趣,并学到一些新的东西。

The book is written for the general interested reader. No prior knowledge of algorithms or computers is required. However, even those with a computer science degree will, I think, find the stories surprising, entertaining, and enlightening. Readers with a firm grasp on what an algorithm is may want to skip the introduction. My goal is for readers to enjoy the book and learn something new along the way.

我向那些我描述但未提及姓名的事件中的许多人致以歉意。几乎每一项创新都是团队合作的成果,建立在前辈的发现之上。为了使本书更具可读性,我通常关注少数发挥关键作用的个人。如需了解更多详情,请感兴趣的读者参阅参考书目中的文章。

My apologies to the many people involved in the events I have described but have not named. Almost every innovation is the product of a team working together, building on the discoveries of their predecessors. To make the book readable as a story, I have generally focused on a small number of individuals who played a key role. For more details, I refer interested readers to the articles in the bibliography.

在某些地方,我更喜欢精彩的故事,而不是令人麻木的完整描述。如果您最喜欢的算法没有找到,请告诉我,我可能会在以后的期刊中收录它。在描述算法的功能时,我会使用现在时,即使是旧算法也是如此。所有金额均指美元。

In some places I prefer a good story to mind-numbing completeness. If your favorite algorithm is missing, let me know and I might include it in a future issue. When describing what an algorithm does, I use the present tense, even for old algorithms. All dollar amounts refer to the US dollar.

算法,名词:

Algorithm, noun:

算法,(v)[m] 和,-n 和 -s] – 执行算术运算及其序列的系统系统: 逻辑算法是一种严格的技术推理方法,不需要人类直觉。

Algorithm, the (v)[m] and the, -n and -s] – systematic system for performing arithmetic operations and their sequence: logical algorithm strictly technical method of reasoning that does not require human intuition.

o 1734,oiv 希腊算术(数字) ⊲ 纬度。Algorismus ⊲ 阿拉伯化波斯语。

o 1734, oiv Greek arithmos (number) ⊲ Lat. Algorismus ⊲ arabized Persian.

al khuwārizmī [花剌子模人,现为乌兹别克斯坦的奇瓦],是波斯数学家穆罕默德·伊本·穆萨的昵称。

al khuwārizmī [the man of Khuwārizm, now Chiva in Uzbekistan], the nickname of the Persian mathematician Muhammad ibn Musa.

范戴尔荷兰语大词典,第 15 版修订 版,2015 年

Van Dale Great Dictionary of the Dutch Language, 15th revised edition, 2015

非常感谢那些慷慨地允许我使用他们的照片和引文的人们。我还要感谢在本书写作过程中给予我帮助的各位助手:我的首任编辑Eoin Bleakley;我的导师Michael Sheridan(作者);我出色的经纪人Isabel Atherton;我的书目管理人Conor Bleakley;我耐心的助理编辑Katherine Ward;牛津大学出版社的各位同仁;我的校对员Guénolé Silvestre和Pádraig Cunningham;以及我的父母和妻子。没有他们的帮助,这本书不可能问世。

Many thanks to those who generously gave me permission to use their photographs and quotes. I am also indebted to my assistants in this undertaking: my first editor, Eoin Bleakley; my mentor, Michael Sheridan (author); my wonderful agent, Isabel Atherton; my bibliographical wrangler, Conor Bleakley; my ever-patient assistant editor, Katherine Ward; everyone at Oxford University Press; my proofreaders, Guénolé Silvestre and Pádraig Cunningham; and last but certainly not least, my parents and my wife. Without their help, this book would never have been possible.

继续阅读并享受吧!

Read on and enjoy!

克里斯·布莱克利

Chris Bleakley

 

 

介绍

Introduction

“你一个,我一个,你一个,我一个。”你站在校园里,阳光明媚。你正和最好的朋友分享一袋糖果。“你一个,我一个。”你当时没有意识到,这样分享糖果其实是在执行一种算法。

"One for you. One for me. One for you. One for me." You're standing in the schoolyard. The sun is shining. You're sharing a bag of candy with your best friend. "One for you. One for me." What you didn't realize at the time was that sharing the candy in that way was an execution of an algorithm.

算法是一系列可用于解决信息问题的步骤。在那个阳光明媚的日子,你使用算法公平地分配糖果。算法的输入是袋子里的糖果数量。输出是你和你朋友各自收到的糖果数量。如果袋子里的糖果总数是偶数,你们俩就会得到相同数量的糖果。如果糖果总数是奇数,你的朋友最终会比你多得到一颗糖果。

An algorithm is a series of steps that can be performed to solve an information problem. On that sunny day, you used an algorithm to divide the candy fairly. The input to the algorithm was the number of candies in the bag. The output was the number of candies that you and your friend each received. If the total number of candies in the bag was even, you would both have received the same number of candies. If the total number was odd, your friend would have ended up with one more candy than you.

算法就像菜谱,列出了一些简单的步骤,按照这些步骤操作,就能将一组输入转化为所需的输出。区别在于,算法处理信息,而菜谱则准备食物。通常,算法操作的是代表信息的物理量。

An algorithm is like a recipe. It lists simple steps that, if followed, change a set of inputs into a desired output. The difference is that an algorithm processes information, whereas a recipe prepares food. Typically, an algorithm operates on physical quantities that represent information.

通常,解决问题会用到其他算法。你可以先数一下糖果,心算一下总数,然后除以二,最后得出正确的糖果数量。结果可能一样,但算法——也就是获取输出的方法——会有所不同。

Often there are alternative algorithms for solving a problem. You could have divided your candies by counting them, mentally dividing the total in half, and giving the correct number of candies. The outcome would have been the same, but the algorithm – the method for getting the output – would have been different.

算法写成一系列指令或命令。通常,这些指令会按特定顺序逐一执行。有时,下一个要执行的指令不是下一个连续的步骤,而是列表中更靠后的一条指令。 例如,执行算法的人可能需要回到上一步并从那里继续。这种回溯允许重复执行多组步骤——这是许多算法的强大功能。在糖果分享算法中,“你一份,我一份”的步骤就被重复执行。重复步骤的行为称为迭代。

An algorithm is written as a sequence of instructions or commands. Usually, these instructions are executed in a certain order, one after the other. Sometimes, the next instruction to be executed is not the next consecutive step but an instruction further down the list. The For example, a person executing the algorithm may need to go back to a previous step and continue from there. This backtracking allows for the repetition of groups of steps – a powerful feature of many algorithms. The steps “One for you. One for me.” were repeated in the candy-sharing algorithm. The act of repeating steps is known as iteration.

如果袋子里的糖果数量是偶数,则以下迭代算法就足够了:

If the number of candies in the bag was even, the following iterative algorithm would have sufficed:

重复以下步骤:

Repeat the following steps:

给你的朋友一颗糖果。

Give a candy to your friend.

给自己一颗糖。

Give yourself a candy.

当袋子空了时停止重复。

Stop repeating when the bag is empty.

在展示此类算法时,为了清晰起见,我们会逐行列出步骤。缩进通常将相关步骤组合在一起。

When displaying an algorithm like this, the steps for clarity are written line by line. Indentation usually groups related steps together.

如果袋子里的糖果数量既可以是奇数也可以是偶数,算法就会变得更加复杂。必须添加一个决策步骤。大多数算法都包含决策步骤。决策步骤要求执行算法的操作员在两种可能的操作之间进行选择。具体采取哪种操作取决于条件。条件是一个有效或无效的语句。最常见的决策结构——if-then - else——结合了一个条件和两种可能的操作。“如果”语句有效,“那么”执行下一个操作(或多个操作)。“如果”语句无效, 那么”执行“else”之后的步骤(或多个步骤)。

If the number of candies in the bag can be both odd and even, the algorithm becomes a bit more complicated. A decision step must be added. Most algorithms contain decision steps. A decision step requires the operator executing the algorithm to choose between two possible actions. Which action is taken depends on a condition. A condition is a statement that is either valid or invalid. The most common decision-making construct—if–then else combines a condition and two possible actions. “If” the statement is valid, “then” the next action (or actions) is performed. “If” the statement is invalid, the step (or steps) after “else” is performed.

为了解释奇数个糖果,必须在算法中建立以下决策步骤:

To account for an odd number of candies, the following decision-making steps must be built into the algorithm:

如果这是第一颗糖果或者你刚刚得到一颗糖果,

If this is the first candy or you just got a candy,

然后你把这颗糖给你的朋友,

then you give this candy to your friend,

否则你就把糖果给自己了。

otherwise you give the candy to yourself.

这里的条件是复合条件,也就是说它由两个(或多个)简单条件组成。简单条件是“这是 第一个糖果”和“你刚得到一颗糖果”。这两个简单条件通过“或”运算连接。只要其中一个简单条件成立,复合条件就成立。如果复合条件成立,则执行步骤“把这颗糖果给你的朋友”。否则,执行步骤“把这颗糖果给你自己”。

The condition here is compound, meaning that it consists of two (or more) simple conditions. The simple conditions are 'this is the first candy' together with 'you just got a candy'. The two simple conditions are joined by an 'or' operation. The compound condition is true if either of the simple conditions is true. In the case where the compound condition is true, the step 'give this candy to your friend' is executed. Otherwise, the step 'give this candy to yourself' occurs.

完整的算法如下:

The full algorithm is then:

以一袋糖果作为输入。

Take a bag of candies as input.

重复以下步骤:

Repeat the following steps:

从袋子里拿出一颗糖果。

Take a candy from the bag.

如果这是第一颗糖果或者你刚刚得到一颗糖果,

If this is the first candy or you just got a candy,

然后你把糖果给你的朋友,

then you give the candy to your friend,

否则你就把糖果给自己了。

otherwise you give the candy to yourself.

当袋子空了时停止重复。

Stop repeating when the bag is empty.

将空袋子放入垃圾箱。

Place the empty bag in the waste bin.

现在糖果可以公平分配了。

The candies are now shared fairly.

与所有算法一样,该算法非常简洁,并且能够高效地实现其目标。

Like all algorithms, this one is neat and achieves its goal efficiently.

图书馆实习生

The library intern

信息问题每天都会发生。想象一下一位图书馆实习生上班的第一天。一千本新书刚刚送到,放在地板上的箱子里。图书馆馆长希望尽快将这些书按作者姓名的字母顺序摆放到书架上。这是一个信息问题,有算法可以解决这个问题。

Information problems occur every day. Imagine a library intern on his first day at work. A thousand brand new books have just been delivered and are sitting in boxes on the floor. The head of the library wants the books to be placed on the shelves alphabetically by author name, as quickly as possible. That is an information problem, and there are algorithms to solve it.

大多数人会直观地使用一种称为插入排序的算法。

Most people would intuitively use an algorithm called Insertion Sort.

该算法的工作方式如下:

The algorithm works in the following way:

插入排序的实际操作

INSERTION SORT IN ACTION

以一堆未分类的书籍作为输入。

Take a pile of unsorted books as input.

重复以下步骤:

Repeat the following steps:

拿一本书。

Grab a book.

读出作者的名字。

Read the author's name.

沿着书架搜索,直到找到应该插入书籍的位置。

Search along the shelf until you find the point where the book should be inserted.

将所有书籍从该点向右移动一个位置。

Move all books past that point one space to the right.

插入新书。

Insert the new book.

当地板上没有书的时候就停止重复。

Stop repeating when there are no more books on the floor.

现在书籍已分类完毕。

The books are now sorted.

任何时候,地板上的书籍都是无序的。书籍被一本接一本地转移到书架上。每本书都按字母顺序摆放在书架上。这样一来,书架上的书籍就始终保持有序。

At any given time, the books on the floor are unsorted. One book after another is transferred to the shelf. Each book is placed on the shelf in alphabetical order. The result is that the books on the shelf are always in order.

插入排序很容易理解,但运行速度很慢。它之所以慢,是因为对于从地板上捡起的每本书,图书馆实习生都必须查看或移动书架上的每本书。起初,书架上只有几本书,然后查看和移动的速度很快。最后,我们的图书馆实习生在书架上已经有近一千本书了。平均而言,将一本书放到正确的位置需要 500 次操作(动作),其中一个操作是比较作者姓名或移动一本书。对所有书籍进行排序平均需要 500,000(1000 × 500)次操作。假设单个操作需要一秒钟。在这种情况下,使用插入排序对书籍进行排序大约需要 17 个工作日。校长对此肯定不满意。

Insertion Sort is easy to understand, but it works slowly. It is slow because for every book picked up from the floor, the library intern must look at or move every book on the shelf. At first, there are only a few books on the shelf, and then the looking and moving goes quickly. By the end, our library intern has almost a thousand books on the shelf. On average, placing a book in the right place requires 500 operations (actions), where an operation is comparing author names or moving a book. Sorting all the books then requires an average of 500,000 (1000 × 500) operations. Suppose a single operation takes one second. In that case, sorting the books with Insertion Sort will take about seventeen working days. The head will not be happy about that.

一种更快的替代算法——快速排序(Quicksort)——是由计算机科学家托尼·霍尔于1962年发明的。他于1938年出生于斯里兰卡,父母是英国人。他在英国接受教育,就读于牛津大学,并在一家计算机公司工作,最终于1968年成为计算机科学教授。他的排序方法是一种分治算法。它比插入排序复杂得多,但顾名思义,它的速度要快得多。

A faster alternative algorithm, Quicksort, was invented in 1962 by computer scientist Tony Hoare. He was born in Sri Lanka in 1938 to British parents. He was educated in England, studied at Oxford University, and worked for a computer company before becoming a professor of computer science in 1968. His method of sorting is a divide-and-conquer algorithm. It is much more complicated than Insertion Sort, but as the name suggests, it is much faster.

快速排序将一摞书分成两部分。这个分叉点,也就是枢轴字母,就是主元字母。作者姓名以字母开头的书籍将作者姓名以枢轴字母后一个字母开头的书籍放在未分类书籍左侧的新堆中。作者姓名以枢轴字母后一个字母开头的书籍放在右侧的堆中。然后根据新的枢轴字母对得到的堆进行划分。在此过程中,将堆按正确的顺序放置。最左边的堆包含作者姓名在字母表中排在第一位的书籍。下一堆包含其后的书,依此类推。对最大的堆重复此拆分过程,直到最大的堆只包含五本书。然后使用插入排序对这些堆进行单独排序。最后,将堆按正确的顺序转移到书架上。

Quicksort divides the stack of books in two. That division point, the pivot, is the pivot letter. Books whose author name starts with a letterfor the pivot letter are placed on a new pile to the left of the unsorted books. Books with an author name beginning with the letter after the pivot letter are placed on a pile to the right. The resulting piles are then divided based on new pivot letters. In doing so, the piles are placed in the correct order. The leftmost pile contains the books whose author names appear first in the alphabet. The next pile contains the books that come after that, and so on. This pile-splitting process is repeated for the largest pile until the largest pile contains only five books. Then the piles are sorted individually using Insertion Sort. Finally, the piles are transferred to the shelf in the correct order.

快速排序的实际应用

QUICKSORT IN ACTION

为了获得最大速度,枢轴字母应该将堆栈分成两半。

For maximum speed, the pivot letters should split the stacks into two halves.

假设原始书架包含从 A 到 Z 的书籍。第一个枢轴点可能是 M。这样会形成两个新的书架:AL 和 MZ。如果 AL 书架较大,则将其拆分。例如,AL 的枢轴点可以是 F。这样会形成三个书架:AE、FL 和 MZ。然后拆分 MZ,依此类推。如果书架中有 20 本书,最终的书架可能是 AC、DE、FL、MR 和 SZ。这些书架使用短插书法分别排列,并将书籍逐个转移到书架上。

Let's assume that the original stack contains books from A to Z. A good choice for the first pivot is probably M. This results in two new stacks: AL and MZ. If the AL stack is larger, it is then split. A good pivot for AL could be F, for example. Then there are three stacks: AE, FL and MZ. Then MZ is split and so on. With twenty books, the final stacks could be AC, DE, FL, MR and SZ. These stacks are arranged separately with Insertion Short and the books are transferred to the shelf stack by stack.

完整的快速排序算法可以写如下:

The full Quicksort algorithm can then be written as follows:

以一堆未分类的书籍作为输入。

Take a pile of unsorted books as input.

重复以下步骤:

Repeat the following steps:

选择最大的一堆。

Choose the largest pile.

在两侧留出空间用于堆放。

Make room for stacks on either side.

选择一个枢轴字母。

Choose a pivot letter.

重复以下步骤:

Repeat the following steps:

从选定的一堆书中拿一本。

Take a book from the chosen pile.

作者姓名是否以枢轴字母之前的字母开头,

Does the author name start with a letter before the pivot letter,

然后你把书放在左边的书堆上,否则就把它放在右边的书堆上。

then you place the book on the pile on the left, otherwise you place it on the pile on the right.

当选定的堆为空时停止重复。

Stop repeating when the chosen pile is empty.

当最大的一叠书包含五本或更少的书时停止重复。

Stop repeating when the largest stack contains five or fewer books.

使用插入排序对堆进行单独排序。

Sort the piles individually with Insertion Sort.

将堆料按顺序转移到架子上。

Transfer the stacks to the shelf in order.

现在书籍已分类完毕。

The books are now sorted.

快速排序使用两个重复的步骤序列(或循环)一个在另一个内部。外部的重复组循环处理所有堆栈。内部的重复组处理单个堆栈。

Quicksort uses two repeated sequences of steps – or loops one inside the other. The outer repeated group rotates around all the stacks. The inner group processes a single stack.

对于大量书籍,快速排序比插入排序快得多。其诀窍在于拆分书堆的速度很快。每本书只需与其主元字母进行比较。无需对其他书籍进行任何操作——无需比较作者姓名,也无需移动书籍。由于书堆较小,在快速排序之后进行插入排序效率更高。快速排序只需大约 10,000 次操作即可对 1,000 本书进行排序。确切的操作次数取决于主元字母将书堆分成两半的精确程度。以每秒一次操作的速度,这项工作只需不到三个小时——比十七个工作日有了巨大的改进。校长会很高兴。

QuickSort is much faster than Insertion Short for large numbers of books. The trick is that splitting a stack is fast. Each book only needs to be compared to its pivot letter. Nothing needs to be done to the other books – no comparing author names, no shifting books. Applying Insertion Sort after Quicksort is efficient because the stacks are small. Quicksort requires only about 10,000 operations to sort 1,000 books. The exact number of operations depends on how precisely the pivots split the stacks in half. At one operation per second, the job takes less than three hours – a huge improvement over the seventeen working days. The head will be happy.

算法的速度显然很重要。算法的评判标准是其计算复杂度。计算复杂度将执行算法所需的步骤数与输入的大小联系起来。快速排序的计算复杂度远低于插入短排序。

The speed of an algorithm is clearly important. Algorithms are judged by their computational complexity. Computational complexity relates the number of steps required to execute the algorithm to the size of the input. The computational complexity of Quicksort is considerably lower than that of Insertion Short.

快速排序被称为分治算法,因为它将一个初始较大的问题分解成多个较小的问题,分别求解这些较小的问题,然后将各个部分解组合起来形成完整的解决方案。正如我们将看到的,分治法是算法设计中一种强大的策略。

Quicksort is called a divide-and-conquer algorithm because it breaks an initially large problem into smaller problems, solves the smaller problems separately, and then combines the partial solutions to form the full solution. As we shall see, divide and conquer is a powerful strategy in algorithm design.

人们发明了许多排序算法,包括归并排序、堆排序、内排序、Timsort、Cubesort、希尔排序、冒泡排序排序、二叉树排序、循环排序、图书馆排序、耐心排序、平滑排序、链排序、锦标赛排序、鸡尾酒排序、梳状排序、侏儒排序、非混洗排序、块排序和奇偶排序。所有这些算法都用于对数据进行排序,但它们各有特色。有些算法比其他算法更快。有些算法比其他算法需要更多的存储空间。有些算法需要特殊的输入准备。还有一些算法已经过时了。

Many sorting algorithms have been invented, including Merge Sort, Heapsort, Introsort, Timsort, Cubesort, Shell Sort, BubbleSort, Binary Tree Sort, Cycle Sort, Library Sort, Patience Sorting, Smoothsort, Strand Sort, Tournament Sort, Cocktail Sort, Comb Sort, Gnome Sort, UnShuffle Sort, Block Sort, and Odd-Even Sort. All of these algorithms sort data, but they are all unique. Some are faster than others. Some require more storage than others. A few require special input preparation. A handful are simply outdated.

如今,算法与计算机密不可分。根据定义,计算机是执行算法的机器。

Nowadays, algorithms are inextricably linked to computers. By definition, a computer is a machine that executes algorithms.

算法机器

The Algorithm Machine

正如我们所见,算法是解决问题的抽象方法。算法可以由人或计算机执行。在计算机上执行算法之前,必须将算法编码为计算机可以执行的指令列表。计算机指令列表称为程序计算机的一大优势在于它能够自动高速地逐个执行大量指令。令人惊讶的是,计算机不需要支持各种各样的指令。一些基本指令就足够了。所需要的只是用于存储和检索数据、算术、逻辑、重复和决策的指令。算法可以简化为这些简单的指令,然后由计算机执行。

As we have seen, an algorithm is an abstract method for solving a problem. An algorithm can be executed by either a human or a computer. Before an algorithm can be executed on a computer, the algorithm must be encoded as a list of instructions that the computer can execute. A list of computer instructions is called a program . The great advantage of a computer is that it can automatically execute large numbers of instructions one after the other at high speed. Surprisingly, a computer does not need to support a wide range of instructions. A few basic instructions will suffice. All that is needed are instructions for storage and retrieval of data, arithmetic, logic, repetition, and decision-making. Algorithms can be reduced to such simple instructions and then executed by a computer.

需要执行的指令列表及其操作的数据称为计算机软件。在现代计算机中,软件被编码为微线路上的电子电压电平。计算机硬件 (物理机器)逐一执行程序指令。程序执行处理输入数据并形成输出数据。

The list of instructions to be executed and the data on which it operates are called computer software . In a modern computer, software is encoded as electronic voltage levels on microscopic wires. The computer hardware —the physical machine—executes the program instructions one by one. Program execution processes the input data and results in the formation of output data.

计算机取得巨大成功的原因有两个。首先,计算机执行算法的速度远超人类。计算机每秒可以执行数十亿次运算,而人类可能只能执行数十次。其次,计算机硬件是通用的,这意味着它可以执行任何算法。更换软件,计算机就能执行完全不同的任务。 赋予机器极大的灵活性。计算机可以执行各种各样的任务——从文字处理到游戏。这种灵活性的关键在于程序决定了通用硬件的功能。没有软件,硬件就毫无用处。正是程序让硬件变得生动活泼。

There are two reasons for the computer's tremendous success. First, computers can execute algorithms much faster than humans. A computer can execute billions of operations per second, while a human can execute perhaps ten. Second, computer hardware is general-purpose, meaning that it can execute any algorithm. Change the software and a computer will perform a completely different task. That gives the machine enormous flexibility. A computer can perform a wide range of tasks – from word processing to games. The key to that flexibility is that the program dictates what the general-purpose hardware does. Without the software, the hardware is useless. It is the program that makes the hardware come alive.

算法是对计算机所需执行操作的抽象描述。因此,算法对于解决问题至关重要。算法是所需执行操作的蓝图。程序是算法的精确、机器可执行的表述。要解决信息问题,首先必须找到合适的算法。只有这样,才能将程序输入计算机。

The algorithm is the abstract description of what the computer has to do. For solving a problem, an algorithm is therefore crucial. The algorithm is the blueprint of what has to be done. The program is the precise, machine-executable formulation of the algorithm. To solve an information problem, a suitable algorithm must first be found. Only then can a program be typed into the computer.

二十世纪中叶计算机的发明带来了算法数量、种类和复杂性的爆炸式增长。曾经被认为无法解决的问题,如今却可以通过廉价的计算机轻松应对。新的程序层出不穷,不断扩展着计算机能够执行的任务范围。

The invention of the computer in the mid-twentieth century caused an explosion in the number, variety, and complexity of algorithms. Problems once thought insoluble are now routinely handled by inexpensive computers. New programs appear daily, expanding the range of tasks that computers can perform.

算法嵌入在我们办公桌上的电脑、汽车、电视、洗衣机、智能手机、手腕上,很快也会融入我们的身体。我们使用各种各样的算法与朋友交流、加快工作效率、玩游戏,甚至寻找灵魂伴侣。算法无疑让我们的生活更加便捷,也为人类提供了前所未有的信息获取途径。从天文学到粒子物理学,算法增进了我们对宇宙的理解。最近,一些领先的算法展现出了超越人类的智能。

Algorithms are embedded in the computers on our desks, in our cars, our televisions, our washing machines, our smartphones, on our wrists, and soon, in our bodies. We use a multitude of algorithms to communicate with our friends, speed up our work, play games, and find soul mates. Algorithms have undoubtedly made our lives easier. They have also provided humanity with unprecedented access to information. From astronomy to particle physics, algorithms have advanced our understanding of the universe. Recently, a handful of leading algorithms have demonstrated superhuman intelligence.

所有这些算法都是人类智慧的杰作,优雅非凡。本书讲述了算法如何从古代学者晦涩难懂的著作中诞生,并成为现代计算机世界背后的驱动力之一。

All these algorithms are brilliant and elegant creations of the human mind. This book tells the story of how algorithms emerged from the obscure writings of ancient scholars to become one of the driving forces behind the modern computerized world.

 

 

苏美尔泥板。

Sumerian clay tablets.

1

1

古代算法

Algorithms from ancient times

攀登乌鲁克的城墙吧,乌尔沙纳比!走上去!

看看它的地基!检查它的砖石结构!

它们难道不是坚硬的烧砖吗?

这地基难道不是七贤的杰作吗?

一平方英里是城市,一平方英里是果园,

一平方英里是陶土坑,

以及伊什塔尔神庙周围的空地。

三平方英里加上空地,构成了乌鲁克。

Climb Uruk's wall, Urshanabi! Walk upon it!

Look at its foundations! Examine its masonry!

Are they not hard, fire-baked bricks?

Is not that foundation the work of the seven sages?

A square mile is the city, a square mile the orchards,

a square mile the clay pits,

as well as the open ground around Ishtar's temple.

Three square miles and the open ground make up Uruk.

作者不详。

Author unknown.

《吉尔伽美什史诗》,约公元前 2000 年

The Epic of Gilgamesh, circa 2000 BC

沙漠几乎吞噬了乌鲁克的全境。雄伟的建筑几乎全部掩埋在沙堆之下,梁柱也已崩裂。随处可见被风吹或考古学家发现的烧制粘土砖。这些废弃的遗址显得无足轻重,被遗忘,毫无意义。没有任何迹象表明,七千年前这片土地曾是地球上最重要的地方。苏美尔的乌鲁克是最早的城市之一。苏美尔文明正是在这里诞生的。

The desert has reclaimed almost all of Uruk. The great buildings lie almost entirely buried under sand piles, their beams disintegrated. Here and there lie baked clay bricks, exposed by wind or archaeologists. The abandoned ruins seem unimportant, forgotten, futile. There is nothing to indicate that seven thousand years ago this land was the most important place on earth. Uruk, in the land of Sumer, was one of the first cities. It was here in Sumer that civilization was born.

苏美尔位于美索不达米亚的南部。这片区域以幼发拉底河和底格里斯河为界,这两条河发源于北部土耳其的山脉,南部流入波斯湾。如今,伊朗和伊拉克在此接壤。这里气候炎热干燥,土地贫瘠,只有河流定期灌溉平原。在灌溉的帮助下,早期的农业在这片“两河之间”蓬勃发展。由此带来的丰饶的粮食使文明得以在此扎根并繁荣。

Sumer is located in the southern part of Mesopotamia. This area is bounded by the Euphrates and Tigris rivers, which flow from the mountains of Turkey in the north to the Persian Gulf in the south. Today, Iran and Iraq border each other here. The climate is hot and dry and the land inhospitable, except for the regular irrigation of the plains by the river. Aided by irrigation, early agriculture flourished in the 'land between the rivers'. The resulting wealth of food allowed civilization to take root and flourish here.

古代美索不达米亚和后来的港口城市亚历山大的地图。

Map of Ancient Mesopotamia and the later port city of Alexandria.

苏美尔国王建造了伟大的城市——埃利都、乌鲁克、基什和乌尔。在鼎盛时期,乌鲁克拥有6万人口。生活的方方面面都在这里——家庭和朋友、贸易和宗教、政治和战争。我们之所以知道这一点,是因为大约五千年前,苏美尔人发明了文字。

The kings of Sumer built great cities – Eridu, Uruk, Kish and Ur. At its peak, Uruk had a population of 60,000. All aspects of life were there – family and friends, trade and religion, politics and war. We know this because writing was invented in Sumer, about five thousand years ago.

刻在粘土上

Engraved in clay

文字似乎是从刻在湿泥板上的简单标记发展而来的。最初,这些标记用于记账和易货贸易。一块泥板可能对应着一定数量的谷物或牲畜的数量。随着时间的推移,苏美尔人开始在更大的泥板上书写更复杂的图案。几个世纪过去了,简单的象形文字逐渐演变成一套成熟的书写系统。我们现在称之为楔形文字的系统。其名称源于芦苇杆压入湿粘土形成的楔形刻纹。符号由这些楔形刻纹的几何排列构成。这些铭文通过将湿泥板在阳光下晒干而保存下来。如今看来,这些泥板赏心悦目——刻纹纤细优雅,符号规整,文字排列整齐,行列分明。

It seems that writing developed from simple markings impressed on wet clay tablets. Originally, these were used for accounting and barter. A tablet might correspond to an amount of grain or the number of heads of livestock. Over time, the Sumerians began to write more intricate patterns on larger pieces of clay. As the centuries passed, simple pictograms evolved into a fully developed writing system. Thatsystem we now call cuneiform. The name derives from the characteristic wedge-shaped markings formed by pressing a reed stem into wet clay. Symbols consisted of geometric arrangements of these wedge-shaped impressions. These inscriptions were preserved by drying the wet tablets in the sun. Viewed today, the tablets are aesthetically pleasing – the impressions thin and elegant, the symbols regular, the text neatly organized into rows and columns.

书写的发明必定改变了这些社群。石板使跨越时空的交流成为可能。人们可以寄送信件,记录约会以备将来参考。书写使公民社会得以顺利运作和扩张。

The invention of writing must have changed those communities. The tablets made communication possible across time and space. Letters could be sent. Appointments could be recorded for future reference. Writing made possible the smooth functioning and expansion of a civil society.

楔形文字记录了苏美尔语长达一千年。公元前24世纪,苏美尔遭到阿卡德帝国军队的入侵。征服者将苏美尔语的书写方式融入到自己的语言中。一度,两种语言同时出现在泥板上。随着政治权力的更迭,阿卡德语逐渐成为泥板上的专属语言。

For a millennium, cuneiform recorded the Sumerian language. In the 24th century BC, Sumer was invaded by the armies of the Akkadian Empire. The conquerors adapted Sumerian writing methods to their own language. For a time, both languages ​​were used on the clay tablets. Gradually, as political power shifted, Akkadian became the exclusive language of the tablets.

阿卡德帝国延续了三个世纪。帝国覆灭后,被占领的城邦复兴,这些城邦后来合并为北部的亚述和南部的巴比伦尼亚。公元前十八世纪,巴比伦国王汉谟拉比统一了美索不达米亚的各个城市。巴比伦城成为美索不达米亚文化无可争议的中心。在国王的领导下,这座城市不断扩张,建造了宏伟的纪念碑和美丽的寺庙。巴比伦尼亚成为了一个地区超级大国。阿卡德语及其使用的楔形文字成为中东地区国际外交的通用语言。

The Akkadian Empire lasted for three centuries. When it fell, there was a revival of the occupied city-states, which later merged into Assyria in the north and Babylonia in the south. In the eighteenth century BC, Hammurabi, the king of Babylon, united the cities of Mesopotamia. The city of Babylon became the undisputed center of Mesopotamian culture. Under the king's supervision, the city expanded and impressive monuments and beautiful temples were built. Babylonia became a regional superpower. The Akkadian language, and the cuneiform script in which it was written, became the lingua franca for international diplomacy within the Middle East.

统治巴比伦尼亚一千多年后,米底人统治下的巴比伦几乎未费吹灰之力就被波斯国王居鲁士二世攻陷。波斯帝国定都帕萨尔加德(位于今伊朗),疆域覆盖整个中东。居鲁士的帝国疆域从博斯普鲁斯海峡延伸至巴基斯坦中部,从黑海延伸至波斯湾。波斯楔形文字开始成为统治的主导。这些新泥板乍一看与阿卡德泥板相似,但使用了波斯语和一套完全不同的符号。古老的阿卡德语文字失传了,巴比伦尼亚陷落四个世纪后,阿卡德语也逐渐被废弃。很快,人们对古老的苏美尔和阿卡德楔形文字的理解也随之消失。

After ruling for more than a millennium, Babylonia, now ruled by the Medes, fell almost without resistance to Cyrus II the Great, the king of Persia. With its capital, Pasargadae, in present-day Iran, the Persian Empire engulfed the Middle East. Cyrus's empire stretched from the Bosporus Strait to central Pakistan and from the Black Sea to the Persian Gulf. Persian cuneiform came to dominate the administration. At first glance similar to the Akkadian clay tablets, the new tablets used the Persian language and a completely different set of symbols. The use of theThe old Akkadian script was lost, and four centuries after the fall of Babylonia, Akkadian fell into disuse. Soon all understanding of the archaic Sumerian and Akkadian cuneiform symbols was lost.

美索不达米亚的古城逐渐被废弃。废墟之下,埋藏着数千块石板——一个消亡文明的档案。两千年过去了。

The ancient cities of Mesopotamia were gradually abandoned. Under the ruins lay thousands of tablets – the buried archive of a dead civilization. Two millennia passed.

终于发现

Finally discovered

十九世纪,欧洲考古学家开始探索美索不达米亚的遗迹。他们挖掘了古代遗址的样本,并将出土的文物运回欧洲进行进一步研究。货物中包括一些刻有符号的泥板。这些泥板上刻有某种文字,但这些符号如今已无法辨认。

In the nineteenth century, European archaeologists began to explore the ruins of Mesopotamia. Their digs sampled the ancient sites. The objects they unearthed were shipped to Europe for further study. Among the cargoes were collections of clay tablets covered in incised symbols. The tablets contained some form of writing, but the symbols were now incomprehensible.

亚述学家们肩负着破译未知铭文的艰巨任务。一些反复出现的符号得以识别和解读。国王和省份的名称也变得清晰起来。但除此之外,文本仍然难以理解。

Assyriologists set themselves the challenging task of deciphering the unknown inscriptions. Certain frequently repeated symbols could be recognized and unraveled. The names of kings and provinces became clear. Otherwise the texts remained incomprehensible.

翻译人员的转折点是发现了贝希斯敦铭文,它以伊朗的一个村庄命名。铭文由文字组成,并附有一幅大型浮雕,描绘了大流士国王对脖子上套着绳索的囚犯施以刑罚的场景。从他们的衣着来看,这些囚犯来自波斯帝国的各个角落。这幅浮雕镌刻在伊朗西部扎格罗斯山脉山麓的石灰岩峭壁上,耸立在古道之上。铭文高达15米,宽25米,令人印象深刻。

The turning point for the translators was the discovery of the Behistun Inscription, named after a village in Iran. The inscription consists of text accompanied by a large relief depicting King Darius meting out punishments to prisoners with a noose around their necks. Judging by their clothing, these prisoners came from all corners of the Persian Empire. The relief is carved high on a limestone cliff, towering over the ancient road in the foothills of the Zagros Mountains in western Iran. The inscription is an impressive fifteen meters high and 25 meters wide.

直到1835年,英国东印度公司官员亨利·罗林森爵士(Sir Henry Rawlinson)到访此地时,碑文的含义才逐渐清晰。罗林森爬上悬崖,抄录了一份楔形文字。他还在悬崖上看到了另外两处碑文。可惜的是,他没能触及到它们。1844年,罗林森再次来到此地,在附近村庄一位年轻小伙子的帮助下,记录下了其他文字的印记。

The meaning of the inscription only became clear in 1835 when Sir Henry Rawlinson, an officer of the British East India Company, visited the site. Rawlinson climbed the cliff and made a copy of the cuneiform text. He also saw two other inscriptions on the cliff face. Unfortunately, he could not reach them. Rawlinson returned in 1844 and, with the help of a young lad from the nearby village, recorded impressions of the other texts.

事实证明,这三份文本是用不同的语言写成的——古波斯语、埃兰语和巴比伦语。至关重要的是,这三份文本都讲述了同一项宣传——国王的权力主张以及他对叛乱分子的残酷镇压。几个世纪以来,一些对古波斯语的理解得以保存。两年后,罗林森出版了他自己翻译的古波斯语文本的完整版本。

It turned out that the three texts were written in different languages ​​– Old Persian, Elamite and Babylonian. Crucially, all three told the same propaganda – a story of the king’s claim to power and his merciless treatment of rebels.Some understanding of Old Persian had survived through the centuries. Two years later Rawlinson published his own complete translation of the Old Persian text.

罗林森和众多爱好者以古波斯语译本为参考,成功破译了巴比伦文字,这为解开阿卡德和苏美尔泥板的含义提供了钥匙。

Using the Old Persian translation as a reference, Rawlinson and a wide range of enthusiasts succeeded in deciphering the Babylonian text, which provided the key to unlocking the meaning of the Akkadian and Sumerian clay tablets.

巴格达、伦敦和柏林博物馆的石碑被重新审视。一块块符号、一块块石碑,苏美尔人、阿卡德人和巴比伦人留下的信息被逐一破译。一个失落已久的文明由此揭开。

The tablets in the museums of Baghdad, London and Berlin were reexamined. Symbol by symbol, tablet by tablet, the messages of the Sumerians, the Akkadians and the Babylonians were deciphered. A long-lost civilization was revealed.

最早的泥板上的信息很简单,记录着重大事件,例如国王的统治时期或重大战役的日期。随着时间的推移,主题变得越来越复杂。人们发现了许多传说,包括最早的书面故事: 《吉尔伽美什史诗》。民间社会的日常管理——法律、合同、会计和税务记录——被揭示出来。国王和王后之间交换的信息被发现,详细记载了贸易协定、王室联姻提议以及带有威胁性的战争语言。私人信件也被发现,包括情诗和魔法咒语。在日常生活的碎片中,学者们偶然发现了古代美索不达米亚的算法。

The messages on the earliest tablets were simple. They recorded major events, such as the reign of a king or the date of a major battle. Over time, the subjects became more complex. Legends were discovered, including the earliest written story: The Epic of Gilgamesh. The daily administration of civil society was revealed – laws, contracts, accounting, and tax records. Messages exchanged between kings and queens were found, detailing trade agreements, proposals for royal marriages, and threatening war language. Personal letters were found, including love poems and magical curses. Amidst all the fragments and fragments of daily life, scholars stumbled upon the algorithms of ancient Mesopotamia.

许多现存的美索不达米亚算法是由学习数学的学生刻写的。以下示例可追溯到汉谟拉比王朝(公元前 1800-1600 年),也就是我们现在所说的古巴比伦时期。这些数字是近似值;它们源自文本的语言风格和所使用的符号。该算法是利用大英博物馆和柏林帕加马博物馆的残片拼凑而成的。原件的部分内容仍然缺失。

Many of the extant Mesopotamian algorithms were engraved by students learning mathematics. The following example dates from the Hammurabi dynasty (1800-1600 BC), a time we now call the Old Babylonian period. The numbers are approximate; they are derived from the linguistic style of the text and the symbols used. This algorithm was pieced together using fragments from the British Museum and the Pergamon Museum in Berlin. Parts of the original are still missing.

这块泥板展示了一种计算地下水库长度和宽度的算法。其表达形式规范,与其他古巴比伦算法相符。前三行是对待解决问题的简明描述。其余部分是对算法的阐述。为了使算法步骤更加清晰易懂,文中穿插了一个示例。

The tablet presents an algorithm for calculating the length and width of an underground water reservoir. The presentation is formal and in accordance with other Old Babylonian algorithms. The first three lines are a concise description of the problem to be solved. The rest of the text is an exposition of the algorithm. A worked example is interwoven with the algorithmic steps to make them understandable.

一个水库。

A water reservoir.

高度为3.33,雕刻出体积为27.78。

The height is 3.33, and a volume of 27.78 has been carved out.

长度超过宽度0.83。

The length exceeds the width by 0.83.

您必须取高度的倒数 3.33,然后得到 0.3。

You have to take the reciprocal of the height, 3.33, and then you get 0.3.

将其乘以体积 27.78,得到 8.33。

Multiply this by the volume, 27.78, and you get 8.33.

取 0.83 的一半,然后平方,得到 0.17。

Take half of 0.83 and square it, getting 0.17.

加上 8.33 就得到 8.51。

Add 8.33 to that and you get 8.51.

根是 2.92。

The root is 2.92.

复制两份,一份加上 0.42,另一份减去 0.42。

Make two copies of this, adding 0.42 to one and subtracting it from the other.

您发现长度为 3.33,宽度为 2.5。

You find that 3.33 is the length and 2.5 is the width.

程序就是这样。

That's the procedure.

本题要求计算一个水库的长度和宽度,以容纳预定的水量。已知水库的容积及其高度,并标明了水库长度和宽度之间的必要差值。实际长度和宽度必须计算。

The question asked is to calculate the length and width of a reservoir for presumed water. The volume of the reservoir is stated, as well as its height. The required difference between the length and width of the reservoir is stated. The actual length and width must be calculated.

“你必须采取”这个标示表明接下来是解决问题的方法。结果之后是“这就是程序”,这标志着算法的结束。

The designation "You must take" indicates that what follows is the method for solving the problem. The result is followed by the statement "That's the procedure," which marks the end of the algorithm.

这个古巴比伦算法远非简单。它用体积除以高度来得到水库的横截面积。只需对该面积开平方即可得到正方形横截面的长和宽。由于正方形是给定周长最小的面积,因此所需的矩形的面积必须略大于正方形横截面。该额外面积的计算方法是,将边长等于所需长宽差一半的正方形的面积相加。然后,该算法将该面积加到正方形横截面的面积上。计算出具有该额外面积的正方形的宽度。通过拉伸较大的正方形,即可得到所需的矩形。将两个相对边的长度增加所需长宽差的一半。将另外两个边的长度减少相同的量。这样就得到了一个具有正确尺寸的矩形。

This Old Babylonian algorithm is far from simple. It divides the volume by the height to get the cross-sectional area of ​​the reservoir. Simply taking the square root of that area would give the length and width of a square cross-section. Since a square is the minimum area for a given perimeter, the desired rectangle must have a slightly larger area than the square cross-section. That additional area is calculated as the area of ​​a square with sides equal to half the difference between the desired length and width. The algorithm then adds that area to the area of ​​the square cross-section. The width of a square with this additional area is calculated. The desired rectangle is formed by stretching that larger square. The lengths of the two opposite sides are increased by half the desired length-width difference. The lengths of the other two sides are decreased by the same amount. That produces a rectangle with the correct dimensions.

上述描述中提到了十进制数。在最初的描述中,巴比伦人使用六十进制数。六十进制数系有六十个不同的数字(0-59)。相比之下,十进制数系只使用十个数字(0-9)。在这两种系统中,数字的权重由其相对于小数点(或小数点)的位置决定。在十进制中,从右到左,每个连续的数字的值都是前一位数字的十倍。因此,我们有个位、十位、百位、千位等等。例如,十进制数 421 等于四个百位加两个十位和一个个位。六十进制数系,从小数点开始从右到左,每个数字的值都是前一位数字的六十倍。相反,从左到右,每个连续列的值都是前一位数字的六十分之一。这使得六十进制的1.3.20等于一百六十加三单位再加二十六十分之一,即63.20/60,或十进制的63.333。显然,古巴比伦系统的唯一优势在于,三分之一比我们的十进制更容易表示。

Decimal numbers are mentioned in the above description. In the original description, the Babylonians used sexagesimal numbers. A sexagesimal number system has sixty unique digits (0-59). In contrast, a decimal number system uses only ten digits (0-9). In both systems, the weight of a digit is determined by its position relative to the fractional (or decimal) point. In the decimal system, going from right to left, each successive digit is worth ten times the value of the digit before it. Thus, we have the units, the tens, the hundreds, the thousands, and so on. For example, the decimal number 421 is equal to four hundreds plus two tens and one unit. Sexagesimal, going from right to left from the fractional point, each digit is worth sixty times the value of the previous digit. Conversely, moving from left to right, each successive column has a value one sixtieth of the previous one. This makes the sexagesimal 1.3.20 equal to one sixty plus three units plus twenty sixtieths, which is 63 20/60 or decimal 63.333. Apparently the only advantage of the Old Babylonian system is that thirds can be represented much more easily than in our decimal system.

对现代读者来说,巴比伦数字系统可能显得有些怪异。然而,我们每天都用它来计时。一分钟有60秒,一小时有60分钟。凌晨3点04分,是午夜过后184(3 × 60 + 4 × 1)分钟。

To the modern reader, the Babylonian number system may seem bizarre. However, we use it every day to measure time. There are sixty seconds in a minute, and sixty minutes in an hour. The time 3.04 am comes 184 (3 × 60 + 4 × 1) minutes after midnight.

巴比伦数学还有另外三个特点。首先,小数点没有被写下来。巴比伦学者必须根据上下文推断它的位置。这肯定很成问题——想象一下,一个价格标签竟然不区分欧元和美分!其次,巴比伦人没有零的符号。今天,我们用圆圈圈出零来标记空位(0)。第三,除法是用分母的倒数乘以分母的倒数来计算的。换句话说,巴比伦人不是用二除,而是用二分之一乘以分母。在实践中,学生们会使用预先计算好的倒数和乘法表来加快计算速度。

Babylonian mathematics has three other peculiarities. First, the decimal point was not written down. Babylonian scholars had to infer its position from context. This must have been problematic – imagine a price tag that did not distinguish between euros and cents! Second, the Babylonians had no symbol for zero. Today, we mark the empty space for zero by drawing a circle around it (0). Third, division was performed by multiplying by the reciprocal of the denominator. In other words, the Babylonians did not divide by two, but multiplied by one half. In practice, students used previously calculated tables of reciprocals and multiplications to speed up calculations.

平板电脑 YBC 7289。

Tablet YBC 7289.

一块小小的圆形泥板展现了巴比伦数学令人惊叹的规模。这块泥板编号为YBC 7289,现藏于耶鲁大学古巴比伦文物收藏馆。它可追溯至公元前1800年至1600年左右,描绘了一个正方形,两条对角线连接着正方形的对角。正方形的边长标记为30个单位。对角线的长度等于平方根的30倍。

A small round clay tablet shows the breathtaking scope of Babylonian mathematics. The tablet – YBC 7289 – is housed at Yale University, in the Old Babylonian collection. Dated to around 1800 to 1600 BCE, it depicts a square with two diagonal lines connecting the opposite corners. The lengths of the square’s sides are marked as thirty units. The length of the diagonal is given as thirty times the square root.

这些值代表了勾股定理的知识,你可能在学校里还记得。该定理指出,对于直角三角形,斜边(最长边)的平方(一个值乘以自身)等于其他两边的平方和。

The values ​​indicate knowledge of the Pythagorean theorem, which you may remember from school. It states that for right-angled triangles, the square (a value multiplied by itself) of the length of the hypotenuse (the longest side) is equal to the sum of the squares of the other two sides.

这块泥板真正令人瞩目的是,它的历史比古希腊数学家毕达哥拉斯的出生早了一千年。对数学家来说,这就像在维京人的营地里发现一个电灯泡一样!这引出了关于数学史的一些根本性问题。毕达哥拉斯发明了这个算法,还是他在旅途中偶然发现的?这个定理是被毕达哥拉斯遗忘后又独立发现的吗?美索不达米亚人还发明了哪些其他算法?

What is truly remarkable about the tablet is that it dates from a thousand years before the ancient Greek mathematician Pythagoras was born. For mathematicians, that is like finding an electric light bulb in a Viking camp! This raises fundamental questions about the history of mathematics. Did Pythagoras invent the algorithm or did he pick it up on his travels? Was the theorem forgotten and rediscovered independently by Pythagoras? What other algorithms did the Mesopotamians invent?

YBC 7289 指出,二的平方根是 1.41421296(十进制)。这很有趣。我们现在知道二的平方根是 1.414213562,精确到小数点后九位。值得注意的是,泥板上的数值精确到小数点后七位,即 0.000,000.6。巴比伦人是如何如此精确地计算出二的平方根的?

YBC 7289 states that the square root of two is 1.41421296 (decimal notation). This is intriguing. We now know that the square root of two is 1.414213562, to the ninth decimal place. Remarkably, the value on the tablet is accurate to almost seven decimal places, or 0.000,000.6. How did the Babylonians calculate the square root of two so accurately?

计算二的平方根并非易事。最简单的方法是亚历山大·希伦的近似算法。当然,希伦计算了一千五百个平方根也有点困难。比YBC 7289号泥板的刻写时间晚了数年(约公元10-70年)。我们必须假设巴比伦人也发展了同样的方法。

Calculating the square root of two is not a piece of cake. The simplest method is the approximation algorithm of Heron of Alexandria. There is of course the slight difficulty that Heron calculated fifteen hundredyears (c. 10-70 AD) later than tablet YBC 7289 was inscribed. We must assume that the Babylonians developed the same method.

Heron 算法将问题反过来了。他不再问“2 的平方根是多少?”,而是问“哪个数乘以自身等于 2?” Heron 算法从一个猜测开始,并通过多次迭代(数学家和计算机科学家用“迭代”来表示重复)来改进它。

Heron's algorithm turns the question around. Instead of asking, "What is the square root of two?" Heron asks, "What number multiplied by itself equals two?" Heron's algorithm starts with a guess and improves it over a number of iterations (mathematicians and computer scientists use the word iterations for repetitions):

猜测二的平方根。

Make a guess for the square root of two.

如下反复进行新的猜测:

Make new guesses repeatedly as follows:

用二除以当前猜测的值。

Divide two by the current guess.

加上当前的赌注。

Add to that the current bet.

除以二即可得到新的猜测值。

Divide by two to get a new guess.

当最近两次猜测几乎相等时停止重复。

Stop repeating when the two most recent guesses are nearly equal.

最后的猜测是二的平方根的近似值。

The last guess is an approximation for the square root of two.

假设算法从一个非常糟糕的猜测开始:

Let's say the algorithm starts with an extremely bad guess:

2.

2.

2 除以 2 得出 1。

Dividing 2 by 2 gives 1.

加上 2 并除以 2,您将得到:

Add 2 to that and divide by 2 and you get:

1.5.

1.5.

2 除以 1.5 得出 1.33。加上 1.5 再除以 2 可得:

Dividing 2 by 1.5 gives 1.33. Add 1.5 and divide by 2 again to get:

1,416,666,666。

1,416,666,666.

再重复一次,您将得到:

Repeat that one more time and you get:

1,414.215.68

1,414.215.68

这已经接近实际值了。

And that is already close to the actual value.

这个算法是如何运作的?假设你知道 2 的平方根的真实值。如果你用 2 除以这个数,结果就是 2 的平方根。

How does this algorithm work? Imagine that you know the true value of the square root of two. If you divide two by that number, the result is exactly the same value – the square root of two.

现在假设你的猜测大于2的平方根。如果你用2除以这个数字,你会得到一个小于2的平方根的值。这两个数字构成了真正的平方根——一个太大,另一个太小。可以通过计算平均值来获得更准确的估计值这两个数字之和(或两者之和除以二)。这样就得到了两个帧数中间的一个数。

Now imagine that your guess is greater than the square root of two. If you divide two by that number, you get a value that is less than the square root of two. Those two numbers frame the true square root – one is too large, the other too small. An improved estimate can be obtained by calculating the averageof those two numbers (or the sum of them divided by two). That gives a number halfway between the two frame numbers.

可以重复此过程(除法和平均),以进一步优化估算值。经过连续迭代,估算值将接近真实的平方根。

This procedure – divide and average – can be repeated to further refine the estimate. After successive iterations, the estimates approach the true square root.

值得注意的是,当猜测值小于实际平方根时,此过程也有效。在这种情况下,除法所得的数字过大。同样,这两个值构成了实际平方根。

It is worth noting that this process also works when the guess is smaller than the actual square root. In that case, the number obtained by dividing is too large. Again, the two values ​​frame the actual square root.

即使在今天,海伦的方法仍用于估算平方根。1996年,格雷格·费(Greg Fee)使用该算法的扩展版本,确认了从小数点后两位到千万分之一位的平方根的确定。

Even today, Heron's method is still used for estimating square roots. An extended version of the algorithm was used in 1996 by Greg Fee to confirm the determination of the square root from two to ten million decimal places.

美索不达米亚的数学家甚至在他们的算法中运用了记忆。他们的指令“把这个数字记在脑子里”是现代计算机数据存储指令的前身。

The Mesopotamian mathematicians went so far as to invoke the use of memory in their algorithms. Their command, "Keep this number in your head," is a precursor to the data storage instructions available in modern computers.

奇怪的是,巴比伦算法中似乎没有明确的决策步骤(if-then-else)。然而,巴比伦人使用“if-then”规则来系统化非数学知识。公元前1754年制定的《汉谟拉比法典》列出了282条公民必须遵守的法律。每条法律都列出了一种罪行和一种惩罚:

Curiously, there seems to be no explicit decision-making (if-then-else) steps in the Babylonian algorithms. However, 'if-then' rules were used by the Babylonians to systematize non-mathematical knowledge. The Code of Hammurabi, dating from 1754 BC, lists 282 laws that citizens were required to obey. Each law listed a crime and a punishment:

如果儿子打父亲,

If a son beats a father,

那么就必须砍掉他的手指。

then one must cut off his fingers.

如果一个人毁掉了另一个人的眼睛,

If a man destroys another man's eye,

那么就必须毁掉他的眼睛。

then one must destroy his eye.

“如果-那么”结构也用于记录医学知识和迷信。以下预言出自尼尼微国王亚述巴尼拔的图书馆,大约公元前650年:

If-then constructions were also used to record medical knowledge and superstition. The following predictions come from the library of King Ashurbanipal at Nineveh, circa 650 BCE:

如果一座城建在山上,

If a city is set on a hill,

那么这对该城市的居民来说就不是好事。

then it is not good for the residents of that city.

如果一个人毫无防备地踩到一只蜥蜴并杀死它,他将战胜对手。

If a man unsuspectingly steps on a lizard and kills it, he will triumph over his opponent.

尽管决策步骤稀缺,美索不达米亚人仍然运用算法解决了各种各样的问题。他们计算了贷款利率的变化,做出了天文预测,甚至解了二次方程(即未知数为2的幂次方的方程)。虽然他们的大多数算法都有实际应用,但其中一些算法却暗示了对数学本身的探索。

Despite the scarcity of decision-making steps, the Mesopotamians solved a wide range of problems using their algorithms. They calculated the development of interest rates on loans, made astronomical predictions, and even solved quadratic equations (that is, equations with unknowns raised to the power of two). Although most of their algorithms had practical applications, a few suggest the exploration of mathematics itself.

优雅与美丽

Elegance and beauty

埃及象形文字的发明与美索不达米亚的发展大致同时发生。由于使用易腐烂的纸莎草卷,埃及数学的痕迹很少留存至今。现存最著名的文字是亨利·莱因德于 1858 年在卢克索购买的一份纸莎草卷。这份莱因德纸莎草卷现藏于大英博物馆,是一份可追溯至公元前 2000 年左右的原件的古代复制品。这卷纸长 5 米,宽 33 厘米,提出了一系列算术、代数和几何问题。虽然这些学科的基础知识得到了很好的涵盖,但其中很少有算法性质的内容。总而言之,算法似乎并不是古埃及数学的一个十分发达的方面。

The invention of writing in Egypt using hieroglyphs occurred roughly simultaneously with its development in Mesopotamia. Due to the use of perishable papyrus rolls, little evidence of Egyptian mathematics has survived to the present day. The most notable extant writing is a papyrus roll purchased by Henry Rhind in Luxor in 1858. The Rhind Papyrus, now in the British Museum, is an ancient copy of an original dating from around 2000 BC. The roll, measuring five metres long and 33 centimetres wide, presents a series of problems in arithmetic, algebra and geometry. Although the basics of these subjects are well covered, little of the content is of an algorithmic nature. All in all, it seems that algorithms were not a well-developed aspect of ancient Egyptian mathematics.

在波斯帝国崛起后的几个世纪里,希腊世界逐渐占据了数学领域的领导地位。作为贸易和战争的副产品,希腊人从美索不达米亚人和埃及人那里学到了很多东西。

In the centuries following the rise of the Persian Empire, the Hellenic world gradually assumed leadership in mathematics. The Greeks learned much from the Mesopotamians and the Egyptians as a by-product of trade and war.

亚历山大大帝(公元前356-323年)在公元前333-323年间建立了对整个中东的军事统治。他的征服始于通过军事胜利将希腊城邦统一在他的统治之下。这位年轻人随后集结了一支由32,000名步兵和5,000名骑兵组成的军队,进军小亚细亚。事实证明,亚历山大是一位杰出的军事战略家和鼓舞人心的领导者。他的军队横扫叙利亚、埃及、腓尼基、波斯和阿富汗,攻占了一座又一座城市。然而,在公元前323年,在一次例行的狂饮之后,他突然发烧。几天后,他在巴比伦去世,年仅32岁。亚历山大庞大的帝国被他的四位将军瓜分。 托勒密是亚历山大的密友,甚至可能是他的同父异母兄弟,他被任命为埃及总督。

Alexander the Great (356-323 BC) established military domination over the entire Middle East during the period 333-323 BC. His conquests began by uniting the Greek city-states under his single rule through military victories. The young man then assembled an army of 32,000 infantry and 5,000 cavalry and marched into Asia Minor. Alexander proved to be a brilliant military strategist and an inspiring leader. His army swept through Syria, Egypt, Phoenicia, Persia, and Afghanistan, capturing city after city. Then, in 323 BC, after one of his usual drinking binges, he fell ill with a fever. He died a few days later in Babylon, only 32 years old. Alexander's vast empire was divided among four of his generals. Ptolemy, a close friend of Alexander and possibly even his half-brother, was appointed governor of Egypt.

托勒密的首要决定之一就是将埃及首都从孟菲斯迁至亚历山大。亚历山大本人在一座早期埃及城市的遗址上建立了这座城市。亚历山大地理位置优越。它位于地中海尼罗河三角洲西侧,拥有天然良港,方便海军和商船进出尼罗河。货物可以通过木筏逆流而上。骆驼商队将尼罗河上游与红海连接起来。贸易使亚历山大繁荣昌盛。在埃及人、希腊人和犹太人涌入的推动下,亚历山大成为当时最大的城市。历史学家斯特拉博对亚历山大的描述如下:

One of Ptolemy's first decisions was to move the capital of Egypt from Memphis to Alexandria. Alexander himself had founded the city on the site of an earlier Egyptian city. Alexandria was an ideal location. Situated on the Mediterranean Sea on the western side of the Nile Delta, its natural harbors gave naval and commercial shipping easy access to the Nile. Goods could be transported upstream by raft. Camel caravans connected the upper Nile with the Red Sea. Trade made Alexandria prosperous. Boosted by the influx of Egyptians, Greeks, and Jews, Alexandria became the largest city of its time. The historian Strabo described Alexandria as follows:

这座城市还拥有非常美丽的公园和皇家宫殿,占其总面积的四分之一甚至三分之一。

The city also contains very beautiful parks and royal palaces, which occupy a quarter or even a third of its entire size.

海滨附近有大量码头、军港和商港、仓库和通往马雷奥蒂斯湖的运河,还有许多美丽的寺庙、圆形剧场和体育场。

Bordering the waterfront is a vast array of docks, military and commercial ports, warehouses and canals leading to Lake Mareotis, and many beautiful temples, an amphitheatre and a stadium.

简而言之,亚历山大城充满了公共和神圣的建筑。

In short, the city of Alexandria is full of public and sacred buildings.

托勒密一世下令建造亚历山大灯塔。它是古代世界七大奇迹之一。这座灯塔建在法罗斯岛上,是连接公海和港口的要塞。这座设计精美、引人注目的三层石塔高达一百米,内设一座灯塔——白天如同镜子,夜晚则如同火光——用于导航。

Ptolemy I commissioned the construction of the Lighthouse of Alexandria. It was one of the Seven Wonders of the Ancient World. The lighthouse was built on the island of Pharos, which served as a stronghold between the open sea and the harbor. Elegantly designed, the striking three-story, one-hundred-meter-high stone tower housed a beacon – a mirror by day and a fire by night – for navigation.

托勒密还建立了一个名为缪斯神庙(Mouseion)的研究机构,这是古代大学的前身。这座“缪斯神庙”与现代学术机构类似,吸引了来自地中海各地的研究人员、科学家、作家和数学家。其中最著名的建筑是亚历山大图书馆。该图书馆旨在成为所有知识的宝库。在慷慨的资助下,它获得了世界上最大的纸莎草卷轴收藏之一。据报道,该图书馆收藏了鼎盛时期,藏书超过20万册。据说所有进港的船只都会被搜查,以查明是否有藏书。任何被发现的资料都会被没收,并附上一份副本。亚历山大图书馆成为了地中海地区首屈一指的学习中心。

Ptolemy also founded a research institute known as the Mouseion , or Museum, an ancient precursor of the university. This 'Temple of the Muses' was similar to modern institutions of learning, and attracted researchers, scientists, authors and mathematicians from all over the Mediterranean. The most famous building of all was the Library of Alexandria. The library was intended as a repository of all knowledge. Generously financed, it acquired one of the largest collections of papyrus scrolls in the world. The library reportedly containedat its peak, more than 200,000 books. It is said that all ships entering the port were searched for writings. Any material discovered was confiscated and a copy was included in the library. The Library of Alexandria became the center of learning par excellence in the Mediterranean world.

欧几里得(公元前四至三世纪)可能是亚历山大城最伟大的学者。关于他的生平,人们知之甚少,只知道他在托勒密一世统治期间在城里创办了一所学校。遗憾的是,欧几里得的大部分著作已佚失。他的五部著作的副本尚存。他的杰作是 《几何原本》,这是 一本几何教科书。它以前辈的著作为基础,共十三章,涵盖了几何、比率和数论。几个世纪以来,《几何 原本》被 抄写、翻译、再抄写、再翻译。如今被称为《欧几里得算法》的《几何原本》收录于第七卷。

Euclid (fourth and third centuries BC) was probably the greatest scholar of Alexandria. Little is known about his life except that he founded a school in the city during the reign of Ptolemy I. Unfortunately, most of Euclid's writings have been lost. Copies of five of his books have survived. His masterpiece was The Elements, a textbook on geometry. It was based on the writings of his predecessors, filling thirteen chapters with geometry, ratios, and number theory. Over the centuries, Euclid's Elements was copied, translated, recopied, and translated again. What is now known as Euclid's Algorithm is found in Book VII.

欧几里得算法计算两个数的最大公约数 (GCD)。例如,12 有六个因数(能整除它的整数)。这些因数分别是 12、6、4、3、2 和 1。数字 18 似乎也有六个因数:18、9、6、3、2 和 1。因此,12 和 18 的最大公约数是 6。

Euclid's algorithm calculates the greatest common factor (GCD) of two numbers. For example, 12 has six divisors (integers that divide it without remainder). These divisors are 12, 6, 4, 3, 2, and 1. The number 18 also appears to have six divisors: 18, 9, 6, 3, 2, and 1. The greatest common factor of 12 and 18 is therefore 6.

两个数的最大公约数 (GCD) 可以通过列出它们所有除数的列表,然后找出这两个列表共有的最大值来求得。这种方法适用于较小的数,但对于较大的数则耗时较长。欧几里得设计了一种更快的方法来求两个数的最大公约数 (GCD)。这种方法的优点在于它只需要进行减法运算,避免了复杂的除法和乘法运算。

The GCD of two numbers can be found by making lists of all their divisors and then looking for the largest value that the two lists have in common. This approach is fine for small numbers, but takes a lot of time for large numbers. Euclid devised a much faster method for finding the GCD of two numbers. The advantage of this method is that it only requires the arithmetic operation of subtraction. Tricky divisions and multiplications are avoided.

欧几里得算法的工作原理如下:

Euclid's algorithm works as follows:

以一对数字作为输入。

Take a pair of numbers as input.

重复以下步骤:

Repeat the following steps:

从最大的数中减去最小的数。

Subtract the smallest number from the largest.

将两者中较大的一个替换为新获得的值。

Replace the larger of the two with the newly obtained value.

当两个数字相等时停止重复。

Stop repeating when the two numbers are equal.

这两个数字等于GGD。

The two numbers are equal to the GGD.

作为示例,我们采用以下两个输入:

As an example, we take the following two inputs:

12,18。

12, 18.

差值为 6。它将取代对中较大的数字 18。因此,该对为:

The difference is 6. That replaces 18, the larger number of the pair. The pair is then:

12,6。

12, 6.

差值又是 6。用 6 代替 12,我们得到对:

The difference is again 6. That replaces 12, and we get the pair:

6,6。

6, 6.

由于数字相等,因此 GGD 等于 6。

Since the numbers are equal, the GGD is equal to 6.

该算法的工作原理并非显而易见。假设您从一开始就知道 GCD。由于 GCD 是两个起始数字的除数,因此它们必须都是 GCD 的倍数。由于两个输入都是 GCD 的倍数,因此它们之间的差也必须是 GCD 的倍数。根据定义,两个输入之间的差必须小于两个数字中较大的那个。用差值替换较大的数字意味着数字对会变得更小。换句话说,数字对会更接近 GCD。在所有情况下,数字对及其差都是 GCD 的倍数。经过几次迭代后,差值会越来越小。最终,差值为零。此时,数字等于 GCD 的最小可能倍数,即 GCD 乘以 1。此时,算法输出结果并退出。

It is not immediately obvious how the algorithm works. Imagine that you know the GCD from the start. The two starting numbers must both be multiples of the GCD since the GCD is a divisor of both. Since the two inputs are multiples of the GCD, the difference between them must also be a multiple of the GCD. By definition, the difference between the two inputs must be smaller than the larger of the two numbers. Replacing the larger number with the difference means that the pair of numbers becomes smaller. In other words, the pair gets closer to the GCD. In all cases, the pair and their difference are a multiple of the GCD. After several iterations, the difference becomes smaller and smaller. Eventually, the difference is zero. When that happens, the numbers equal the smallest possible multiple of the GCD, which is GCD times 1. At this point, the algorithm outputs the result and exits.

这个版本的欧几里得算法是迭代的。换句话说,它包含重复的步骤。或者,该算法可以用递归的方式表示 。递归发生在算法调用自身时。其原理是,每次算法调用自身时,输入都会被简化。经过多次调用后,输入会变得越来越简单,直到最终答案清晰。递归是一个强大的概念。欧几里得算法的递归版本工作原理如下:

This version of Euclid's algorithm is iterative. In other words, it contains repeating steps. Alternatively, the algorithm can be expressed recursively . Recursion occurs when an algorithm calls itself. The idea is that each time the algorithm calls itself, the inputs are simplified. After a number of calls, the inputs become simpler and simpler until eventually the answer is clear. Recursion is a powerful construct. The recursive version of Euclid's algorithm works as follows:

以一对数字作为输入。

Take a pair of numbers as input.

用最大值减去最小值。

Subtract the smallest from the largest.

用获取的值替换较大的数字。

Replace the larger number with the obtained value.

如果两个数字相等,

If the two numbers are equal,

然后输出其中一个数字——它是GGD,否则将该算法应用于新的数字对。

then output one of the numbers – it is the GGD, otherwise apply this algorithm to the new pair of numbers.

这次没有明确的步骤重复。算法只是调用自身的执行。每次算法应用于一对较小的数字:18 和 12,然后是 12 和 6,然后是 6 和 6。输入最终相等,并给出结果。

This time there is no explicit repetition of steps. The algorithm merely calls the execution of itself. Each time the algorithm is applied to a smaller pair of numbers: 18 and 12, then 12 and 6, then 6 and 6. The inputs are eventually equal and the result is given.

欧几里得算法的递归版本是伟大的算法之一。它既有效又极其高效。然而,它不仅仅是功能性的。该算法具有对称性、美感和优雅。欧几里得算法提供了一个出人意料的解决方案。它展现了想象力和天赋。所有这些特质都使欧几里得算法如此伟大。

The recursive version of Euclid's algorithm is one of the great algorithms. It is both effective and extremely efficient. However, it is more than just functionality. The algorithm has a symmetry, a beauty and an elegance. Euclid's algorithm is an unexpected solution to the problem. It shows imagination and flair. All of these things make Euclid's algorithm great.

伟大的算法是解决难题的诗歌。

The great algorithms are poems that solve puzzles.

寻找素数

Finding Prime Numbers

公元前三世纪,埃拉托色尼(约公元前276-195年)被任命为亚历山大图书馆馆长。他出生于希腊人建立的北非城市昔兰尼,早年大部分时间在雅典度过。大约三十岁时,他被托勒密三世(托勒密一世的孙子)召集,负责管理这座大图书馆,并担任国王儿子的导师。

In the third century BC, Eratosthenes (c. 276–195 BC) was appointed director of the Library of Alexandria. He was born in Cyrene, a North African city founded by the Greeks, and spent most of his early years in Athens. He was about thirty years old when he was summoned by Ptolemy III—grandson of Ptolemy I—to take charge of the great library and tutor the king's son.

如今,埃拉托色尼最为著名的成就是他对地球周长的测定。他发现,在夏至(一年中白天最长的一天)的正午,亚历山大附近地面上一根木桩投射的影子,比其南边500英里处塞伊尼(现阿斯旺)一根同等高度的木桩投射的影子要长。通过测量两座城市之间的距离,埃拉托色尼得到了亚历山大和塞伊尼之间地球弧长。结合两地影子长度的比值,他估算出了地球的周长。令人惊奇的是,对两地距离五倍的计算结果,其准确度与真实值的误差在16%以内。

Today, Eratosthenes is most famous for his determination of the circumference of the earth. He discovered that at midday on the summer solstice (the longest day of the year), the shadow cast by a stake in the ground near Alexandria is longer than the shadow cast by a stake of the same height at Syene (now Aswan), 500 miles to the south. Measuring the distance between the cities gave Eratosthenes the length of the earth's arc between Alexandria and Syene. Combining that with the ratio of the shadow lengths, he gave an estimate of the earth's circumference. Amazingly, the calculation of five times the distance between the cities was accurate to within 16 percent of the true value.

作为其数学研究的一部分,埃拉托斯特尼发明了一种寻找素数的重要算法——埃拉托斯特尼筛法。素数除了自身和1之外,没有其他精确的整数因数(即能整除该数而无余数的数)。前五个素数分别是2、3、5、7和11。

As part of his mathematical investigations, Eratosthenes invented an important algorithm for finding prime numbers—the Sieve of Eratosthenes. A prime number has no exact integer divisors (i.e., numbers that divide it without remainder) except itself and one. The first five prime numbers are 2, 3, 5, 7, and 11.

素数很难找到。它们的数量无穷无尽,并且随机分布在数轴上。即使使用现代计算机,发现新的素数也需要很长时间。有些算法提供了捷径,但迄今为止,还没有一种简单的方法可以找到所有素数。

Prime numbers are very hard to find. There are infinitely many of them and they are randomly distributed along the number line. Even with modern computers, discovering new prime numbers takes a very long time. Some algorithms provide shortcuts, but so far there is no simple way to find all prime numbers.

埃拉托斯特尼筛法的工作原理如下:

The Sieve of Eratosthenes works as follows:

列出您想要在其中找到素数的数字列表,从 2 开始。

Make a list of numbers in which you want to find prime numbers, starting with 2.

重复以下步骤:

Repeat the following steps:

找出第一个没有被圈出或划掉的数字。

Find the first number that is not circled or crossed out.

圈起来。

Circle it.

划掉该数字的所有倍数。

Cross out all multiples of that number.

当所有数字都被圈出或划掉时停止重复。

Stop repeating when all numbers are circled or crossed out.

圈出的数字是质数。

The circled numbers are prime numbers.

假设你想找出15以内的所有质数。第一步是写出2到15之间的数字。然后圈出2,划掉它的倍数,也就是4、6、8等等。

Imagine you want to find all the prime numbers up to fifteen. The first step is to write out the numbers from 2 to 15. Then you circle 2 and cross out its multiples, so 4, 6, 8 and so on.

然后圈出 3,并画一条线穿过它的所有倍数:6、9、12、15。

Then circle the 3 and draw a line through all its multiples: 6, 9, 12, 15.

4 已经被划掉了,所以下一个要圈出的数字是 5,以此类推。最终的列表如下:

4 has already been crossed out, so the next number to circle is 5, and so on. The final list is:

通过筛子的数字(即圈出的数字)是质数。

The numbers that pass through the sieve (that is, those circled) are prime numbers.

埃拉托斯特尼筛法的一个优点是它不使用乘法。由于倍数是按顺序提供的,所以它们可以通过重复加法来形成。因此,可以计算出2的倍数通过不断将 2 添加到不断增长的系列中,得到 4、6、8 等等。

One of the useful aspects of the Sieve of Eratosthenes is that it does not use multiplication. Since the multiples are supplied sequentially, one after the other, they can be formed by repeated addition. Thus, the multiples of 2 can be calculatedby repeatedly adding two to a growing series, resulting in 4, 6, 8, and so on.

埃拉托斯特尼筛法的一个缺点是所需的数据存储量。为了生成前七个素数,必须存储十八个数字。只需记录某个数字是否被划掉,就可以减少存储量。然而,当素数数量庞大时,筛法的存储复杂度就会成为一个问题。现代笔记本电脑可以轻松地使用埃拉托斯特尼筛法找出所有十进制数字少于八位的素数。然而,当2018年3月发现已知的最大素数时,它包含的十进制数字竟高达23,249,425位。

One disadvantage of the Sieve of Eratosthenes is the amount of data storage required. To produce the first seven prime numbers, eighteen numbers must be stored. The amount of storage can be reduced by only recording whether a number has been crossed out or not. Nevertheless, the storage complexity of the sieve becomes a problem for large numbers of prime numbers. A modern laptop can easily find all prime numbers with fewer than eight decimal digits using the Sieve of Eratosthenes. However, when the largest known prime number was discovered in March 2018, it contained a staggering 23,249,425 decimal digits.

三百年来,亚历山大缪斯神庙一直是学习和教育的灯塔。此后,它逐渐衰落,最终走向灾难。公元前48年,尤利乌斯·凯撒的军队为了抵御托勒密四世的军队,在亚历山大港纵火焚烧船只。大火蔓延至码头,图书馆的部分建筑在随后的大火中受损。公元272年,缪斯神庙在埃及起义中遭到破坏。公元391年,亚历山大大主教、科普特教皇狄奥菲勒斯下令拆除塞拉皮斯神庙。公元415年,女数学家希帕提娅被一群基督教暴徒杀害。最后,公元641年,阿姆鲁·伊本·阿斯·萨赫米将军率领的穆斯林军队攻占了这座城市,图书馆也随之被摧毁。

For three hundred years, the Mouseion of Alexandria was a beacon of learning and education. After that, a slow decline was followed by disaster. In 48 BC, Julius Caesar’s army set fire to its ships in Alexandria’s harbor in a desperate attempt to hold off Ptolemy IV’s forces. The fire spread to the quays, and parts of the library were damaged in the resulting conflagration. In 272 AD, the Mouseion was damaged during an Egyptian revolt. The Temple of Serapis was then demolished in 391 AD by order of the Patriarch of Alexandria, the Coptic Pope Theophilus. The female mathematician Hypatia was murdered by a Christian mob in 415 AD. Finally, in 641 AD, the library was destroyed when the Muslim army of General Amr ibn al-As al-Sahmi took the city.

尽管亚历山大穆瑟庙在古希腊世界长达六个世纪的时间里一直是卓越的学术中心,但它并非逻辑和推理的唯一堡垒。在地中海彼岸,一位孤独的天才设计出了一种巧妙的算法,用于计算数学中最重要的数字之一。他的算法在近千年的时间里,一直盖过其他所有算法的威力。

Although the Mouseion of Alexandria was the preeminent center of learning in the ancient Greek world for six centuries, it was not the only stronghold of logic and reasoning. Across the Mediterranean, a lone genius devised a clever algorithm for calculating one of the most important numbers in mathematics. His algorithm would eclipse all others for nearly a thousand years.

巨石阵建造的六千年前,土耳其安纳托利亚东南部出现了哥布莱克山丘,考古学家认为这是已知最古老的神庙。其石灰岩柱高达五米多。

Six thousand years before Stonehenge was built, Göbleke Tepe, which archaeologists believe is the oldest known temple, appeared in southeastern Anatolia, Turkey. Limestone columns reach more than five meters high.

* 见右上:这首诗是帮助记忆或助记数字 π 的助记符:所有单词中字母的数量显示了数字的第一位数字,3.1415926538979323842643383279。

* See above right: This poem is a memory aid or mnemonic to remember the number pi: the number of letters in all the words shows the first digits in the number, 3.1415926538979323842643383279.

2

2

不断扩大的圈子

Ever expanding circles

什么,你得算数?

算了算数就意味着学习更好?

学者们,用ris算一下每个半径和角度。

可是,学生可以要求把圆周率“简化”吗?*

What, you have to calculate the number?

The knowledge of it would mean better studying?

Calculate, scholars with the ris numbers every radius and angles.

But may a pupil then request pi 'shortened'!?*

来源www.wiskan.nl

SOURCE : www.wiskan.nl

哥贝克力石阵位于土耳其南部,靠近幼发拉底河的源头。遗址的挖掘工作发现了一系列神秘的巨石(源于希腊语,字面意思是“大石头”)。这些四米高的石灰石柱排列成十至二十米宽的圆圈。圆圈的中心是一些更大的整体结构。这些柱子呈细长的T形。大多数柱子上雕刻着丰富的动物图案。在一些地方,这些图案令人联想到人类的手和手臂。总共有二十个圆圈和大约200根柱子。

In southern Turkey, near the sources of the Euphrates River, lies Göbekli Tepe, the Navel Hill. Excavations at the site have revealed a series of mysterious megaliths (from the Greek, literally "large stones"). Four-meter-high limestone pillars are arranged in circles ten to twenty meters wide. The circles are centered around a few even larger monolithic structures. The pillars are shaped like an elongated T. Most are richly engraved with images of animals. In some places the motifs are reminiscent of human hands and arms. In total there are twenty circles and about 200 pillars.

哥贝克力石阵虽然建筑宏伟,但真正非凡之处在于它的年代。该遗址的历史可追溯到公元前10000至8000年,比古苏美尔时代早得多。这使得哥贝克力石阵成为世界上已知最古老的巨石遗址。

While the structures are impressive, the truly extraordinary aspect of Göbekli Tepe is its age. The site dates back to 10,000-8000 BCE, much earlier than ancient Sumer. This makes Göbekli Tepe the oldest known megalithic site in the world.

六千年后,用巨石建造圆形建筑的做法在欧洲依然盛行。人们或许会好奇,圆形究竟有何特别之处,以至于人类在如此漫长的岁月里,选择将其融入其最伟大的纪念碑之中。

Six thousand years later, the practice of building circles with megaliths was still prevalent in Europe. One might wonder what is so special about a circle that humanity chose to incorporate it into its greatest monuments for such a long period.

轮中之轮

Wheels within wheels

圆的基本特征是从圆心到圆心边的距离是恒定的。这个距离就是圆的 半径。圆的直径 ,或者说宽度,是半径的两倍。 圆的周长是其周长的长度。圆越大,其周长和直径都越大。可以通过测量来评估周长和直径之间的关系。沿着圆的直径放置一根绳子,然后比较它的长度和周长。你会发现圆的周长略大于其直径的三倍。反复测量表明,对于所有大小的圆,这个比率都是恒定的。当然,“略大于三倍”从数学角度来看并不令人满意。数学家想要精确的答案。确定圆的周长与其直径之间的精确关系是一项持续不断的探索。

The fundamental characteristic of the circle is that the distance from the center to the edge is constant. That distance is the radius of the circle. The diameter of the circle, or its width, is twice its radius. The circumference of a circle is the length of its perimeter. The larger the circle, the larger both its circumference and its diameter. An assessment of the relationship between circumference and diameter can be made by measurement. Place a piece of string along the diameter of a circle and compare its length with the circumference. You will find that the circumference of the circle is slightly more than three times its diameter. Repeated measurements show that this ratio is constant for all sizes of circle. Of course, "slightly more than three times" is not very satisfactory from a mathematical point of view. Mathematicians want precise answers. Determining the precise relationship between the circumference of a circle and its diameter is an ongoing quest.

无论其实际值是多少,精确的比率现在都用希腊字母π(发音为“pi”)表示。π这个字母并非由希腊人首次使用,而是由一位威尔士人——数学家威廉·琼斯于1707年——发明的。

The precise ratio – whatever its actual value – is now indicated by the Greek letter π (pronounced ‘pi’). The letter π was first used in this way not by Greeks, but by a Welshman – in 1707, by the mathematician William Jones.

写下π的真实值是不可能的。约翰·海因里希·兰伯特(Johann Heinrich Lambert)在1760年左右证明π是一个无理数,这意味着你不能把它写成分数;它的小数点后有无限多位数字。无论你如何推导,你都看不到重复的模式。你所能做的最好的就是近似π。

Writing down the true value of π is impossible. Johann Heinrich Lambert proved around 1760 that π is an irrational number, meaning that you can't write it as a fraction; it has an infinite number of digits after the decimal point. No matter how far you go, you never see a repeating pattern. The best you can do is approximate π.

除了前几个整数之外,π 无疑是数学中最重要的数字。如果没有 π,我们将很难理解圆和球。圆周运动、旋转和振动将成为数学难题。π 的值在许多实际应用中都有应用,从建筑到通信,从太空旅行到量子力学。

After the first few integers, π is undisputedly the most important number in mathematics. Without π, we would struggle to think about circles and spheres. Circular motion, rotation, and vibration would become mathematical puzzles. The value of π is used in many practical applications, ranging from construction to communications and from space travel to quantum mechanics.

3 的原始估计值精确到一位数。大约公元前 2000 年,巴比伦人将 π 估算为 25/8 = 3.125,精确到两位数。埃及莱因德纸莎草纸提供了更精确的估计值 256/81 = 3.16049,接近三位数。但真正在确定 π 值方面取得突破的却是希腊数学家阿基米德。

The original estimate of 3 is accurate to one digit. By about 2000 BC, the Babylonians estimated π to be 25/8 = 3.125, accurate to two digits. The Egyptian Rhind Papyrus offers an improved estimate of 256/81 = 3.16049, close to three digits. But the first real breakthrough in determining π was made by the Greek mathematician Archimedes.

一个圆内有一个六边形(左),另一个圆外有一个六边形(右)。内六边形包含构成它的等边三角形。

A circle with a hexagon inside it (left) and a circle with a hexagon outside it (right). The inner hexagon contains the equilateral triangles of which it is composed.

阿基米德(约公元前287-212年)被认为是古代最伟大的数学家之一。他出生于西西里岛锡拉库萨城,当时该城是希腊殖民地。

Archimedes (c. 287–212 BCE) is considered one of the greatest mathematicians of antiquity. He was born in the city of Syracuse, Sicily, then part of a Greek colony.

阿基米德生平的确切细节鲜为人知。如今我们记住他,主要是因为他从浴缸里跳出来,赤身裸体跑到街上,大喊“尤里卡” (我找到了)。我们从维特鲁威的著作中得知这个故事。据说,阿基米德受国王之命检查王冠。国王怀疑金匠偷偷用一种更便宜的金银合金代替了纯金。这种合金看起来与真金一模一样。阿基米德能查明真相吗?

The precise details of Archimedes' life are largely unknown. Today we remember him mainly because he jumped out of his bath and ran naked into the street, shouting 'Eureka' (I have found it). We know this story from the writings of Vitruvius. It seems that Archimedes was asked by the king to examine the royal crown. The king suspected that the goldsmith had secretly replaced the pure gold with a cheaper gold-silver alloy. The alloy looked exactly like the real gold. Could Archimedes find out the truth?

银金合金和纯金之间存在可测量的差异:纯金的密度更大。物体的密度等于其重量(或质量)除以体积。王冠的重量可以测量。但由于其形状不规则,确定其体积似乎是不可能的。

There is a measurable difference between a silver-gold alloy and pure gold: pure gold is denser. The density of an object is its weight (or mass) divided by its volume. The weight of the crown could be measured. But determining its volume seemed impossible because its shape was irregular.

一天晚上,阿基米德走进浴缸时,浴缸里的水溢出来了。阿基米德突然意识到,不规则形状物体的体积可以通过测量它在浸没时所排开的水。他的推论使他能够确定王冠的密度。

One night the bathtub overflowed when Archimedes stepped in. Suddenly Archimedes realized that the volume of an irregularly shaped object can be determined by measuring the amountwater which it displaces when submerged. His deduction enabled him to determine the density of the crown.

这顶王冠不是纯金打造的,金匠有罪。

The crown was not made of pure gold. The goldsmith was guilty.

阿基米德解决了许多重要的力学问题,包括定义杠杆定律。然而,他最大的贡献是在几何学领域。他的研究使他确定了π的正确值。他的成果是一种能够以前所未有的精度计算π的算法。

Archimedes solved a number of important problems in mechanics, including defining a law of leverage. His greatest contributions, however, were in geometry. His investigations led him to determine the correct value of π. The result of his work was an algorithm for calculating π with unprecedented precision.

阿基米德逼近π的算法基于三个原理。首先,正多边形近似于圆。其次,由于多边形的所有边都是直线,因此测量其周长很容易。第三,正多边形的边越多,它就越接近圆。

Archimedes' algorithm for approximating π is based on three insights. First, a regular polygon approximates a circle. Second, it is easy to measure the perimeter of a polygon because all its sides are straight lines. Third, the more sides a regular polygon has, the closer it approximates a circle.

想象一个圆。现在想象一下,在圆的正内侧画一个六边形(一个规则的六边形)。六边形的角与圆的圆周相切,边刚好位于圆的正内侧。由于六边形比圆小,因此可以合理地假设六边形的圆周长接近但略小于圆的圆周长。

Imagine a circle. Now imagine that a hexagon (a regular six-sided shape) is drawn just inside the circle. The corners of the hexagon touch the circumference of the circle and the sides lie just inside the circle. Since the hexagon is smaller than the circle, it is reasonable to assume that the circumference of the hexagon is close to but slightly smaller than that of the circle.

正六边形的周长等于六个等边三角形并排放置,每个三角形的顶点指向中心。这些三角形是等边三角形,这意味着所有三条边的长度相等。由于六边形有六条边,因此其周长等于三角形的六条边。六边形的直径等于三角形的两条边。因此,六边形的周长与其直径的比值为 6/2 = 3。因此,3 是 π 的合理近似值。

A regular hexagon has a perimeter equal to six equal triangles placed side by side with their points pointing toward the center. These triangles are equilateral, meaning that all three sides have the same length. Since a hexagon has six sides, its perimeter is equal to six triangle sides. The diameter of the hexagon is equal to two triangle sides. Therefore, the ratio of the perimeter of the hexagon to its diameter is 6/2 = 3. Therefore, 3 is a reasonable approximation for π.

现在想象一个六边形,它位于圆的正外侧。在这种情况下,六边形每条边的圆心与圆相切,而不是与角相切。圆的直径现在等于多边形中心到边中点距离的两倍。这个较大六边形的周长是圆直径的2√3倍。由此可以得到π的另一个估计值3.464.10。这个估计值接近真实值,但略微偏大。

Now imagine a hexagon that lies just outside the circle. In that case, the center of each hexagon side touches the circle instead of the corners. The diameter of the circle is now equal to twice the distance from the center of the polygon to the midpoint of a side. The perimeter of that larger hexagon is 2√3 times the diameter of the circle. That gives another estimate for π of 3.464.10. That estimate is close to the true value, but slightly too large.

阿基米德通过一种算法改进了这些近似值。该算法每次迭代都会使两个多边形的边数加倍。多边形的边数越多,其对π的近似值就越好。

Archimedes improved these approximations by means of an algorithm. Each iteration of the algorithm doubles the number of sides in the two polygons. The more sides a polygon has, the better the approximation of π it produces.

该算法的工作原理如下:

The algorithm works as follows:

将内部和外部多边形的周长作为输入。

Take the perimeters of an inner and an outer polygon as input.

将内周长和外周长相乘。

Multiply the inner and outer circumferences.

将其除以总数。

Divide that by the sum.

这给出了新的外多边形的周长。

That gives the perimeter of a new outer polygon.

将新的外周长乘以之前的内周长。

Multiply the new outer circumference by the previous inner circumference.

取平方根。

Take the square root.

这给出了新的内部多边形的周长。

That gives the perimeter of a new inner polygon.

提供新的内多边形和外多边形的周长。

Provide the perimeters of the new inner and outer polygons.

在第一次迭代中,算法将六边形改为十二边形(12 条边形)。这使得 π 的估值改进为六位数,分别为 3,105.82(内多边形)和 3,215.39(外多边形)。

In the first iteration, the algorithm changes the hexagons to dodecagons (12-sided shapes). This yields an improved estimate of π of 3,105.82 (inner polygon) and 3,215.39 (outer polygon) to six digits.

阿基米德算法的妙处在于它可以重复应用。一次迭代的输出可以作为后续迭代的输入输入到算法中。这样,十二边形就被转换成二十四边形。四十八边形可以转换成九十六边形,以此类推。随着每次迭代,内外多边形都越来越接近圆形,从而得到更精确的π值估计值。

The beauty of Archimedes' algorithm is that it can be re-applied. The output of one pass can be fed into the algorithm as input for a subsequent iteration. In this way, the dodecagons are converted into twenty-four-sided polygons. Forty-eight-sided polygons can be converted into ninety-six-sided shapes, and so on. With each iteration, the inner and outer polygons get closer to the circle, yielding better estimates of π.

阿基米德完成了九十六边形的计算,得出π的估算值为223/71和22/7。前者精确到小数点后四位。后者精度较低,但由于其简单易懂而更受欢迎。

Archimedes completed the calculations for a ninety-six-sided form, obtaining estimates for π of 223/71 and 22/7. The former is precise to four decimal places. The latter is less precise, but more popular because of its simplicity.

阿基米德的结局很悲惨,在叙拉古之战中被一名罗马士兵杀害。关于其死因,有几种说法。一种说法是,阿基米德拒绝陪同这名士兵去见他的上级,因为他当时正在研究一个特别有趣的问题。另一种说法是,阿基米德试图阻止这名士兵偷走他的科学仪器。令人惊讶的是,阿基米德的算法花了近两千年的时间,直到1699年才被超越。

Archimedes met a tragic end, killed by a Roman soldier during the sack of Syracuse. There are several stories about the cause. One says that Archimedes refused to accompany the soldier to his superiors because he was working on a particularly intriguing problem. Another says that Archimedes tried to prevent the soldier from stealing his scientific instruments. Amazingly, it took almost two thousand years, until 1699, for Archimedes' algorithm to be surpassed.

世界纪录

World Records

考古证据表明,中国文明与美索不达米亚和埃及文明大约同时出现。中国的城市文明似乎首先在长江和黄河沿岸发展起来。由于用于书写的竹简易腐烂,人们对早期中国数学知之甚少。尽管东西方之间存在交流,但中国数学似乎在很大程度上是独立发展的。

Archaeological evidence suggests that civilization in China emerged at about the same time as Mesopotamia and Egypt. Urban civilization in China seems to have developed first along the banks of the Yangtze and Yellow Rivers. Little is known about early Chinese mathematics because the bamboo strips used for writing were rather perishable. Although there was communication between East and West, Chinese mathematics seems to have developed largely independently.

中国现存最古老的数学典籍《周髀算经》可追溯至公元前300年左右。该书侧重于历法和几何,并运用了勾股定理等诸多原理。此外,还保存了一本与莱因德纸莎草纸类似的数学题集《九章算术》,其年代大致相同。

The oldest extant Chinese mathematical text – Zhoubi Suanjing – dates from around 300 BCE. The book focuses on calendar and geometry, and uses, among other things, the Pythagorean theorem. A collection of mathematical problems analogous to the Rhind Papyrus, Jiuzhang suanshu (Nine Chapters on the Mathematical Art), from roughly the same period also survives.

中国人对π的探索似乎比西方更加坚定。公元264年,刘徽利用一个192边形的内部多边形,得到了3,141.014的近似值,精确到小数点后三位。后来,他将这种方法扩展到3,072边形的内部多边形,得到了3,141.59的改进估计值,精确到小数点后六位。

The search for π seems to have been much more determined in China than in the West. In 264 AD, Liu Hui used a 192-sided interior polygon to obtain an approximation of 3,141.014 – accurate to three decimal places. He later extended this method to a 3,072-sided polygon, which yielded an improved estimate of 3,141.59 – accurate to six decimal places.

公元五世纪,祖冲之(430-501)在其子祖庚的协助下,做出了更为精确的估算。父子二人也采用了类似阿基米德方法的多边形法。他们坚持不懈,进行了多次迭代。最终,他们测得的上界和下界3,141,592.7和3,141,592.6精确到七位数,创造了新的世界纪录。他们的成就在近九百年间无人超越,足以证明他们的奉献精神。

Zu Chongzhi (430-501), aided by his son Zu Geng, produced an even better estimate in the fifth century AD. Father and son also used a polygon method similar to Archimedes' approach. In their persistence, they performed many more iterations. Their upper and lower bounds of 3,141,592.7 and 3,141,592.6 were accurate to seven digits—a new world record. Their achievement remained unsurpassed for almost nine hundred years, a testament to their dedication.

如今,我们知道 π 等于 3,141,592,653.59,精确到 12 位数字。计算 π 现在已经是计算机算法的任务了。根据吉尼斯世界纪录,截至 2019 年,π 的最精确值是 31 万亿位数字。计算该值的程序是由日本的 Emma Haruka Iwao 编写的。该程序在谷歌云的 25 台虚拟机上运行了 121 天。2020 年,这项纪录被一台配备大量硬盘的个人计算机打破,该计算机耗时 303 天计算完成。Timothy Mullican 的计算精度达到了 50 万亿位数字。2021 年 8 月, 瑞士格劳宾登州应用技术大学的一个研究小组经过 108 天的计算,创造了超过 62 万亿位数字的新纪录,但这一数字还有待验证。

Today, we know that π is equal to 3,141,592,653.59 to twelve digits. Calculating π is now a task for computer algorithms. According to the Guinness World Record Book, until 2019, the most precise value for π was 31 trillion digits long. The program that produced that value was written by Emma Haruka Iwao in Japan. The program ran for 121 days on 25 virtual machines in the Google Cloud. In 2020, the record was returned to a single personal computer equipped with a large number of hard drives, which took 303 days to calculate. Timothy Mullican achieved a precision of 50 trillion digits. In August 2021, a A Swiss group at Fachhochschule Graubünden, Switzerland, claimed a new record of over 62 trillion digits, after 108 days of calculation, which has yet to be verified.

计数的艺术

The art of counting

公元前212年阿基米德遇刺,标志着罗马征服欧洲。公元前146年,古希腊帝国覆灭于罗马帝国之下。从公元前1世纪到公元5世纪,罗马帝国统治着地中海地区。当帝国最终崩溃时,欧洲文明也随之瓦解。欧洲数学的火焰在长达一千年的时间里黯淡无光。在黑暗之中,少数知识中心照亮了东方。

The assassination of Archimedes in 212 BC heralded the Roman conquest of Europe. The ancient Greek Empire fell to the power of Rome in 146 BC. From the first century BC to the fifth century AD, the Roman Empire ruled the Mediterranean. When the empire finally collapsed, European civilization fell apart. The flame of European mathematics burned low for a thousand years. Amid the darkness, a few centers of knowledge illuminated the East.

哈里发哈伦·拉希德于公元762年左右在新都巴格达建立了智慧宫(Bayt al-Hikma)。在其继任者的扩建下,智慧宫在9世纪至13世纪成为重要的知识中心,这段时期被称为阿拉伯科学的黄金时代。智慧宫的学者们将用希腊语和印度语撰写的科学和哲学文献翻译成阿拉伯语。他们也进行数学、地理、天文学和物理学方面的研究。

Caliph Harun ar-Rashid founded the House of Wisdom (Bayt al-Hikma) in his new capital Baghdad around 762. Expanded by his successors, the House became a major intellectual center from the ninth to the thirteenth centuries, a period now known as the golden age of Arabic science. Scholars working in the House translated scientific and philosophical texts written in Greek and Indian into Arabic. They also conducted their own research in mathematics, geography, astronomy, and physics.

智慧殿堂中最有影响力的学者是穆罕默德·伊本·穆萨·花拉子米。他约公元780年至850年生活在巴格达。人们对他的生平知之甚少。他的三部主要著作的副本至今仍保存完好。

The most influential intellectual in the House of Wisdom was Muhammad ibn Musa al-Khwarizmi. He lived in Baghdad from about 780 to 850. Little is known about his life. Copies of three of his major works have been preserved.

他的《简明算术全书》(Contracted Book on Arithmetic by Completion and Compare)专注于代数。事实上,“代数”一词源于该书的阿拉伯语书名(al-jabr意为“全集”)。本书描述了如何使用算法解决数学问题,尤其是线性和二次方程。虽然之前已有代数的论述,但花拉子米的讲解风格却格外引人注目。他的讲解比其他著作更系统、更循序渐进、更具算法性。

His Concise Book on Arithmetic by Completion and Comparison focuses on algebra. In fact, we owe the name 'algebra' to the Arabic title of this book (the term al-jabr means completion). The book describes how to use algorithms to solve mathematical problems, especially linear and quadratic equations. Although algebra had been described before, it was Al-Khwarizmi's style of presentation that attracted attention. His treatment was more systematic, more step-by-step, more algorithmic, than found in other works.

花拉子米的著作《印度算术》(约公元825年)描述了十进制数字系统,包括我们今天使用的数字。该系统的根源在于印度河流域文明,该文明在公元前2600年左右(约公元前2600年)在印度河流域(现巴基斯坦南部)繁荣发展。与吉萨金字塔的建造时间相同。除了从宗教文献中收集到的信息外,人们对该地区最初的数学知之甚少。碑文表明,九个非零的印度-阿拉伯数字(1-9)在公元前三世纪至公元前二世纪之间出现在该地区。主教塞维鲁·塞博赫特(Severus Sebokht)在一封信中至少明确提到了这九个非零的印度数字,他大约生活在公元650年。数字零(0)最终在大约同一时期出现在印度。

Al-Khwarizmi's text On the Hindu Art of Arithmetic (c. 825) describes the decimal number system, including the numerals we use today. The roots of this system lie in the Indus Valley Civilization, which flourished in the Indus Valley (now southern Pakistan) around 2600 BCE – approximatelyat the same time as the pyramids at Giza were built. Little is known of the original mathematics in that area, except what can be gleaned from religious texts. Inscriptions suggest that the nine Hindu-Arabic numerals non-zero (1-9) appeared in that area between the third and second centuries BCE. There is at least one clear reference to the nine non-zero Hindu numerals in a letter from the bishop Severus Sebokht, who lived in Mesopotamia around 650. The numeral for zero (0) finally appeared in India around the same time.

到了公元8世纪,许多波斯学者已经采用了印度-阿拉伯数字系统,因为它极其易于使用——因此,花拉子米就此撰写了著作。他的著作成为将印度-阿拉伯数字引入西方世界的渠道。1126年, 英国自然哲学家巴斯的阿德拉德将《印度算术》从阿拉伯语译成拉丁语。继阿德拉德的译本之后,比萨的列奥纳多(斐波那契)于1202年出版了一本关于该主题的著作——《 算盘之书》。

By the eighth century, many Persian scholars had adopted the Hindu-Arabic numeral system because of its incredible ease of use—hence Al-Khwarizmi’s book on the subject. His text became a conduit that brought the Hindu-Arabic numerals to the Western world. In 1126, On the Hindu Art of Arithmetic was translated from Arabic into Latin by Adelard of Bath—an English natural philosopher. Adelard’s translation was followed in 1202 by a book on the subject by Leonardo of Pisa (Fibonacci)—Liber Abaci.

1258 年,即花剌子模去世四百年后,智慧屋在蒙古人洗劫巴格达时被摧毁。

In 1258, four hundred years after the death of Al-Khwarizmi, the House of Wisdom was destroyed during the sack of Baghdad by the Mongols.

令人惊讶的是,新数字系统的采用进展缓慢。罗马数字(I、II、III、IV、V……)被印度-阿拉伯数字取代,足足花了几个世纪的时间。欧洲学者似乎很乐意用算盘进行计算,并用罗马数字写出结果。直到16世纪,随着人们逐渐转向用纸笔计算,十进制才逐渐占据了主导地位。

Surprisingly, the adoption of the new number system was slow. It would take centuries before the Roman numerals (I, II, III, IV, V…) were replaced by Hindu-Arabic numerals. It seems that European scholars were perfectly happy to perform calculations on an abacus and write the results in Roman numerals. Decimal numbers only gained their favoured position in the sixteenth century with the transition to calculating with pen and paper.

巴斯的阿德拉尔将花剌子密的著作译成拉丁文,书名《Liber algorismi de Numero Indorum》中出现了花剌子密的名字,这成为了现代词汇“算法”的起源。

Al-Khwarizmi's name in the title of the Latin translation of his book by Adelard of Bath – Liber algorismi de Numero Indorum – has given rise to the modern word algorithm.

波浪之上

Waves on waves

十四至十七世纪的欧洲文艺复兴,见证了古典哲学、文学和艺术的重新发现。数学也得到了复兴,尤其是在会计、力学和制图等实际应用中。十五世纪印刷机的发明进一步促进了科学和教育的传播。

The European Renaissance, from the fourteenth to the seventeenth century, saw the rediscovery of classical philosophy, literature, and art. Mathematics also revived, especially in practical applications such as accounting, mechanics, and cartography. The invention of the printing press in the fifteenth century spurred the further spread of science and education.

约瑟夫·傅立叶半身像,皮埃尔·阿尔方斯·费萨尔 (Pierre-Alphonse Fessard) 于 1839 年创作。

Bust of Joseph Fourier by Pierre-Alphonse Fessard, 1839.

随后,十八世纪的启蒙运动引发了西方哲学的一场革命。几个世纪以来的教条被证明和推理的局限性所扫除。数学和科学成为思想的基础。技术进步彻底改变了社会结构。民主和对个人自由的追求日益兴起。

The subsequent Enlightenment of the eighteenth century saw a revolution in Western philosophy. Centuries of dogma were swept away by the limitations of proof and reasoning. Mathematics and science became the foundations of thought. Technological advances changed the very structure of society. Democracy and the pursuit of individual freedom were on the rise.

人际关系的变化、沉重的税收和农作物歉收导致了 1789 年的法国大革命。在这场血腥的起义中,法国数学家为世界上使用最广泛的算法之一奠定了理论基础。

Changing relationships, heavy taxes and crop failures led to the French Revolution in 1789. In the midst of the bloody uprising, French mathematicians laid the theoretical foundations for what would become one of the most widely used algorithms in the world.

1768年,让-巴蒂斯特·约瑟夫·傅立叶出生于法国城市欧塞尔。傅立叶九岁时成为孤儿,在当地由宗教团体开办的学校接受教育。少年时期,傅立叶的数学天赋便显露出来。尽管如此,这位年轻人最终还是接受了神父的培训。成年后,傅立叶离开了神职人员,投身于数学事业,接受了一份教师的职位。不久,他便卷入了席卷法国的政治动乱。受法国大革命理想的启发,傅立叶投身政治活动,加入了欧塞尔革命委员会。在随后的恐怖统治中,傅立叶卷入了敌对团体之间的暴力冲突。他被囚禁,并险些被送上断头台。

In 1768, Jean-Baptiste Joseph Fourier was born in the French city of Auxerre. Orphaned at the age of nine, Fourier was educated in local schools run by religious orders. The boy's talent for mathematics became apparent when he became a teenager. Nevertheless, the young man trained to become a priest. When he came of age, Fourier left the clergy to devote his career to mathematics, accepting a teaching position. He soon became entangled in the political upheavals that were sweeping the country. Inspired by the ideals of the French Revolution, Fourier turned to political activism and joined the Revolutionary Committee of Auxerre. In the Terror that followed, Fourier became involved in a violent feud between rival groups. He was imprisoned and narrowly escaped the guillotine.

三个谐波及其相加后的波形(最右侧)。

第二个谐波被缩放了一半,第三个谐波被延迟了四分之一波周期。

Three harmonics and the resulting waveform after their summation (far right).

The second harmonic is scaled by a half and the third harmonic is delayed by a quarter of the wave cycle.

傅里叶随后前往巴黎学习当老师。凭借其数学天赋,他被聘为新成立的巴黎综合理工学院的教师。仅仅两年后,他就担任了分析与力学系主任。傅里叶原本似乎注定要从事科学事业,但一场意外的变故改变了他的人生轨迹。

Fourier then went to Paris to study as a teacher. Thanks to his mathematical skills, he was appointed to the faculty of the newly founded École Polytechnique. Just two years later, he was leading the department of analysis and mechanics. Fourier seemed destined for a scientific career when an unexpected turn of events changed the course of his life.

傅立叶在拿破仑入侵埃及期间被任命为拿破仑军队的科学顾问。1798年7月,法军攻占了亚历山大。这场胜利随后变成了耻辱的失败。拿破仑逃离埃及,夺取了法国政权,而傅立叶则留在开罗,履行他的科学职责,并在业余时间研究埃及古物。

Fourier was appointed scientific advisor to Napoleon's army during the invasion of Egypt. The French forces took Alexandria in July 1798. The victory then turned into a shameful defeat. Napoleon fled Egypt to seize power in France, but Fourier remained in Cairo, fulfilling his scientific duties there and conducting research on Egyptian antiquities in his spare time.

傅里叶最终回国后,拿破仑安排这位数学家担任伊泽尔省(格勒诺布尔市周围的阿尔卑斯山区)的行政长官。在那里,傅里叶开始创作他的巨著。他的《热传导理论》(Théorie Analytique de la Chaleur)于1822年出版。表面上,这本书探讨的是金属棒中的热传导。更重要的是,这本书假设所有波形都可以看作是适当延迟和缩放的谐波的叠加。这个想法在当时引起了很大争议。然而,傅里叶的假设后来被证明是正确的。

When Fourier eventually returned, Napoleon arranged for the mathematician to be appointed administrator of the Isère department – ​​the alpine region around the city of Grenoble. There, Fourier began work on his magnum opus. His Théorie Analytique de la Chaleur was published in 1822. On the surface, it is about the conduction of heat in metal rods. More importantly, the book postulated that every waveform can be regarded as the summation of suitably delayed and scaled harmonic waves. The idea was highly controversial at the time. Nevertheless, Fourier’s postulate was subsequently proven correct.

为了理解他的提议,我们需要做一个思想实验。想象一个游泳池。在一端放置一台造波机,并假设另一端有某种不会反射波浪的堰。假设造波机产生的波浪与游泳池长度相同。我们可以看到波峰从游泳池的一端移动到另一端,然后下一个波峰出现在游泳池的起点。这个简单的波形被称为 一次谐波周期(两个波峰之间的距离)等于游泳池的长度。

To understand his proposal, we need to perform a thought experiment. Imagine a swimming pool. Place a wave machine at one end and assume that the opposite side has some kind of weir that does not reflect waves. Let’s say that the machine produces a single wave that is as long as the pool. We see the wave crest move from one end of the pool to the other before the next wave crest appears at the beginning. This simple waveform is called the first harmonic . The period – the distance between two wave crests – is equal to the length of the pool.

现在想象一下造波机移动得更快。这一次,两个完整的波浪周期正好与泳池的长度吻合。换句话说,我们总是看到两个波峰,而不是一个。这个波形是二次谐波。它的周期等于泳池长度的一半。

Now imagine that the wave machine moves faster. This time, two complete wave cycles fit into the length of the pool. In other words, we always see two wave crests instead of just one. This waveform is the second harmonic. Its period is equal to half the length of the pool.

接下来,我们再次将机器的速度加倍。这次周期是泳池长度的四分之一。这就是三次谐波

Next we double the speed of the machine again. This time the period is a quarter of the length of the pool. That is the third harmonic .

进一步加倍,我们得到 第四次谐波等等。

With a further doubling we get the fourth harmonic and so on.

这一系列谐波称为傅里叶级数

This series of harmonics is called the Fourier series .

傅里叶的非凡思想是,所有波形——或任何形状——都是缩放和延迟谐波的总和。缩放意味着使波形变大或变小。放大意味着波峰更高,波谷更深。缩小则相反。延迟波形意味着它会随时间移动。延迟意味着波峰和波谷比没有延迟时到达得晚。

Fourier’s remarkable idea was that all waveforms—or any shape—are the sums of scaled and delayed harmonics. Scaling means to make the waveform larger or smaller. Scaling up means that the peaks are higher and the troughs are deeper. Scaling down does the opposite. Delaying a waveform means that it shifts in time. A delay means that the wave crests and troughs arrive later than they would without a delay.

现在让我们研究一下组合谐波的效果。假设第一个谐波的振幅(偏移)为 1。波形的振幅是相对于静止状态的最大偏差。谐波的振幅是波峰的高度。第二个谐波的振幅为 1/2。第三个谐波的振幅为 1,延迟为半个周期。如果我们将这些谐波加在一起,就会得到一个新的复合波形。这个相加的过程模拟了现实世界中波相遇时发生的情况。它们只是相互叠加。物理学术语称波 表现出叠加态。

Now let us examine the effect of combining the harmonics. Let us say that the first harmonic has an amplitude (excursion) of one. The amplitude of a waveform is the maximum deviation from the resting state. The amplitude of a harmonic is the height of the wave crests. The second harmonic has an amplitude of one-half. The third has an amplitude of one and a delay of one-half a period. If we add these harmonics together, we get a new composite waveform . This process of adding mimics what happens in the real world when waves meet. They simply move on top of each other. The terminology used in physics says that the waves exhibit superposition .

添加波形显然很容易。逆转这个过程要复杂得多。给定一个复合波形,如何确定底层谐波的幅度和延迟?答案是:通过 傅里叶变换(FT)。

Adding waveforms is clearly easy. Reversing that process is much more complicated. Given a composite waveform, how can the amplitudes and delays of the underlying harmonics be determined? The answer is: by means of the Fourier transform (FT).

傅立叶变换 (FT) 将每个波形作为输入,并将其分解为其组成谐波。输出由原始波形中每个谐波的幅度和延迟组成。例如,给定左上图中的复合波形,FT 将输出三个组成谐波的幅度和延迟。FT 的输出由两列组成,其中一列是谐波的幅度。对于图中的复合波形,[1, ½, 1] 是组成谐波的幅度。第一个元素是第一个谐波的幅度,依此类推。第二个输出列由谐波的延迟组成:[0, 0, ½],以周期为单位。

The FT takes each waveform as input and decomposes it into its component harmonics. The output consists of the amplitude and delay of each harmonic within the original waveform. For example, given the composite waveform in the figure above left, the FT will output the amplitudes and delays of the three component harmonics. The output of the FT consists of two trains, one of which is the amplitude of the harmonic. For the composite waveform in the figure, [1, ½, 1] are the amplitudes of the component harmonics. The first element is the amplitude of the first harmonic, and so on. The second output train consists of the delays of the harmonics: [0, 0, ½], measured in periods.

尽管最初只有物理学家对 FT 感兴趣,但计算机发明后,FT 的真正威力才逐渐显现。计算机可以快速且廉价地分析各种波形。计算机将波形存储为一系列数字。每个数字代表波形在特定时间点的电平。较大的正值对应于波形的波峰。较大的负数对应于波谷。这些数字被称为样本,因为计算机会以固定的时间间隔(等距的时间点)对波形电平进行采样。如果采集了足够多的样本,这一系列数字就能合理地近似合成波的形状。

Although initially of interest only to physicists, the real power of the FT became apparent after the invention of the computer. Computersallow for fast and inexpensive analysis of all kinds of waveforms. A computer stores a waveform as a series of numbers. Each number represents the level of the waveform at a particular point in time. Large positive values ​​correspond to the peaks of the waveform. Large negative numbers correspond to the troughs. These numbers are called samples because the computer samples the level of the waveform at regular intervals in time (equidistant points in time). If enough samples are taken, the series of numbers gives a reasonable approximation of the shape of the composite wave.

傅立叶变换 (FT) 首先对一次谐波进行整形。整形后的波形由一个周期(波峰和波谷)组成,其长度与输入序列相同。该算法将两个列表逐个样本相乘(例如,[1, -2, 3] × [10, 11, 12] = [10, -22, 36])。然后将这些结果相加。总和即为输入与一次谐波的相关性。相关性是衡量两个波形相似度的指标。相关性高表示一次谐波在输入中强烈存在。

The FT starts by shaping the first harmonic. The shaped waveform consists of a single period – a crest and a trough – and has the same length as the input sequence. The algorithm multiplies the two lists sample by sample (for example, [1, –2, 3] × [10, 11, 12] = [10, –22, 36]). These results are then added. The total is the correlation of the input and the first harmonic. Correlation is a measure of the similarity between two waveforms. A high correlation indicates that the first harmonic is strongly present in the input.

该算法对延迟四分之一周期的一次谐波副本重复相关过程。这次相关测量的是输入波形与延迟一次谐波之间的相似性。

The algorithm repeats the correlation procedure for a copy of the first harmonic delayed by a quarter of the period. This time the correlation measures the similarity between the input waveform and the delayed first harmonic.

将两个相关值(非滞后和滞后)相加,即可估算出一次谐波的幅度和滞后。幅度等于两个相关值的平方和除以样本数的平方根。滞后则通过计算两个相关的相对强度来获得。相对强度表示该分量在时间上与谐波的两个版本的接近程度。

The two correlation values ​​(unlagged and lagged) are summed to provide an estimate of the amplitude and lag of the first harmonic. The amplitude is equal to the square root of the sum of the squares of the two correlations divided by the number of samples. The lag is obtained by calculating the relative strength of the two correlations. The relative strength indicates how close the component is in time to the two versions of the harmonic.

用来表示信号的波形及其相关的采样值。

A waveform and its associated sample values ​​used to represent the signal.

对所有高次谐波重复此双重(非延迟和延迟)相关和合并过程,从而得到它们的振幅和延迟。

This double (undelayed and delayed) correlation and merging process is repeated for all higher harmonics. This gives their amplitudes and delays.

总而言之,这导致了如下 FT 算法的工作原理:

In summary, this results in an FT algorithm that works as follows:

以波形作为输入。

Take a waveform as input.

对每个可能的谐波重复以下步骤:

Repeat the following steps for each possible harmonic:

形成谐波。

Form the harmonic.

确定输入和谐波的相关性。

Determine the correlation of the input and the harmonic.

将谐波延迟四分之一周期。

Delay the harmonic by a quarter of a period.

确定输入和延迟谐波的相关性。

Determine the correlation of the input and the delayed harmonic.

计算谐波的总体幅度和延迟。

Calculate the overall amplitude and delay of the harmonic.

当所有谐波都处理完毕后停止重复。

Stop repeating when all harmonics have been processed.

提供每个谐波的幅度和延迟。

Provide the amplitude and delay of each harmonic.

乍一看,将复合波形分解成其谐波分量的过程似乎是一种数学上的狂妄——演示起来很好,但实际用途却很少。这完全是错误的。事实上,傅立叶变换 (FT) 在现实世界信号的分析中被广泛使用。

At first glance, this process of decomposing a composite waveform into its component harmonics seems like a case of mathematical hubris – a nice thing to demonstrate but with little practical use. Nothing could be further from the truth. FT is in fact used extensively in the analysis of real-world signals .

信号是现实世界中随时间变化的任何量。声音信号是我们能听到的气压变化。在语音识别系统(例如 Siri 和 Alexa)中,傅里叶变换 (FT) 将声音信号分解为其组成谐波,然后再进行进一步分析。数字音乐播放器(例如 Spotify 和 Tidal)依靠傅里叶变换来检测冗余谐波信息,从而减少对数据存储的需求。

A signal is any quantity in the real world that varies over time. Sound signals are variations in air pressure that we can hear. In speech recognition systems (such as Siri and Alexa), FT decomposes the sound signal into its component harmonics before further analysis. Digital music players (such as Spotify and Tidal) rely on FT to detect redundant harmonic information, thereby reducing the need for data storage.

无线电信号是电子设备能够接收的电磁变化。在无线通信系统(例如WiFi和DAB)中,FT确保通过无线电信号高效地传输和接收数据。

Radio signals are electromagnetic variations that can be registered by electronic devices. In wireless communication systems (such as WiFi and DAB), FT ensures efficient transmission and reception of data by means of radio signals.

尽管傅立叶变换 (FT) 极其实用,但它需要大量的计算能力。相关性计算耗时过长,尤其对于长波形而言。原始算法的一种变体——快速傅里叶变换(称为 FFT,快速傅里叶变换)——用于现代设备。

Although FT is extremely useful, it requires a huge amount of computational power. The correlations take an excessive amount of time, especially for long waveforms. A variant of the original algorithm – appropriately called Fast Fourier Transform(called FFT, fast Fourier transform) – is used in modern devices.

FFT 于 1965 年发明,旨在满足紧迫的军事需求。在冷战的背景下,美国希望监测苏联的核试验。当时唯一的方法是在友好国家的监测站测量爆炸产生的地震振动。然而,使用传统的 FT 分析地震数据速度极慢。科学家 James Cooley(1926-2016)和 John Tukey(1915-2000)提出了一种新版本的算法,可以在极短的时间内获得相同的结果。

FFT was invented in 1965 to meet a pressing military need. Against the backdrop of the Cold War, the United States wanted to monitor the Soviet Union’s nuclear tests. The only way to do this was to measure the seismic vibrations generated by a detonation at monitoring stations located in friendly countries. Unfortunately, analyzing seismic data with traditional FT was extremely slow. Scientists James Cooley (1926-2016) and John Tukey (1915-2000) came up with a new version of the algorithm that produced the same results in a fraction of the time.

他们的算法利用谐波波形的对称性,在相关步骤之间共享结果。在谐波波形中,波谷只是波峰的反射。波峰的上升部分是下降部分的镜像。高次谐波是低次谐波的加速变体。通过重复使用中间结果,可以避免计算中不必要的重复。

Their algorithm exploits the symmetry of harmonic waveforms to share results between correlation steps. In a harmonic waveform, a trough is simply a reflection of a peak. The rising half of a wave crest is a mirror image of the falling half. Higher harmonics are accelerated variants of lower harmonics. By reusing intermediate results, unnecessary repetition in the calculation can be avoided.

这个想法后来被证明是天赐之物。库利和图基的快速傅里叶变换使美国军方能够以15公里的精度定位苏联核试验。

The idea turned out to be a godsend. Cooley and Tukey's FFT enabled the U.S. military to locate a Soviet nuclear test with an accuracy of 15 kilometers.

出乎意料的是,在FFT“发明”二十年后,人们发现该算法实际上已有180多年的历史。伟大的德国数学家卡尔·弗里德里希·高斯(1777-1855)于1805年将该算法应用于天文数据分析。高斯始终是一位完美主义者,从未发表过该算法。最终,在他死后收集的论文中发现了该方法。他1805年的笔记甚至比傅立叶在该主题上的著作还要古老。回想起来,我们似乎更应该将该算法称为高斯变换。

Quite unexpectedly, twenty years after the 'invention' of the FFT, it turned out that the algorithm was in fact more than 180 years old. The great German mathematician Carl Friedrich Gauss (1777-1855) had applied the algorithm to the analysis of astronomical data in 1805. Gauss, always a perfectionist, never got around to publishing the algorithm. The method was finally discovered in the midst of a posthumous collection of his papers. His notes from 1805 are even older than Fourier's work on the subject. In retrospect, it seems that we might better call the algorithm the Gaussian transform.

傅立叶于1830年5月16日逝世,他的名字被刻在埃菲尔铁塔的侧面,以表彰他的科学成就。

Fourier died on May 16, 1830. His name was engraved on the side of the Eiffel Tower in recognition of his scientific achievements.

傅立叶动荡的一生几乎恰逢工业革命时期。在大约七十年的时间里,旧工艺逐渐被机器生产系统所取代。在变革之中,一位英国人开始思考,机器能否编织出算术,而不是纺织品。算术会否迎来一场工业革命?

Fourier's turbulent life coincided almost exactly with the years of the Industrial Revolution. In the space of about seventy years, old crafts were replaced by machine production systems. In the midst of the changes, an Englishman began to wonder whether a machine could weave arithmetic, instead of textiles. Could there be an industrial revolution for arithmetic?

手指是学习算术的有用工具。事实上,用手指做 1 加 2 就已经是一种算法了。

Fingers are a useful tool for learning arithmetic. In fact, adding 1 by 2 on the fingers is already an algorithm.

3

3

电脑梦

Computer dreams

过去五十年文明史最明显、最显著的特征是通过应用机器、改进旧技术工艺和发明新技术,工业生产得到了巨大的增长。

The most obvious and distinguishing features of the History of Civilization during the past fifty years have been the tremendous increase in industrial production through the application of machinery, the improvement of old technical processes, and the invention of new ones.

托马斯·亨利·赫胥黎

Thomas Henry Huxley

1887 年《过去半个世纪的科学进步》

The Advance of Science in the Last Half Century, 1887

手工计算既缓慢又繁琐。几千年来,发明家们一直试图设计出能够加快计算速度的装置。第一个成功的例子是算盘,也称为算盘。算盘由苏美尔人于公元前2500年左右发明,它是由沙脊上鹅卵石的计数演变而来的。后来,为了加快计算速度,人们在桌面上刻上了线条和符号。珠杆算盘起源于中国,后来由罗马人在欧洲推广。

Performing calculations by hand is slow and tedious. For thousands of years, inventors have tried to design devices that would speed up calculations. The first success was the counting frame, also called the abacus. Invented by the Sumerians around 2500 BC, the table counting frame evolved from counting pebbles on ridges in the sand. Later, lines and symbols were carved into the surface of the table to allow for faster calculations. The bead-and-rod counting frame was invented in China before being popularized in Europe by the Romans.

第一批机械计算器于17世纪在法国和德国独立发明。它由手摇曲柄驱动,通过杠杆、齿轮和嵌齿的运动进行加减运算。复杂的手工制作的设备既昂贵又不可靠,大多数都只是作为古董卖给富人。

The first mechanical calculators were invented independently in France and Germany in the seventeenth century. Powered by hand cranks, addition and subtraction were performed by the movement of levers, cogs and gears. The complicatedhand-made devices were both expensive and unreliable. Most were sold as mere curiosities to the wealthy.

十八世纪末十九世纪初,工业革命爆发。工程师们发明了以蒸汽和自来水为动力的机器,取代了传统的手工生产方式。向机器生产的转变带来了生产力的快速提升和重大的社会变革。工人们从乡村涌入城市,在嘈杂、黑暗且往往危险的工厂里操作机器工作。

The late eighteenth and early nineteenth centuries brought the Industrial Revolution. Engineers developed machines powered by steam and running water that replaced traditional manual production methods. The transition to machine production led to rapid increases in productivity and major social changes. Workers moved from the countryside to the cities to work with machines in noisy, dark, and often dangerous factories.

动力织机能够织出具有一致织纹的织物。1804年,法国织布商约瑟夫·玛丽亚·查尔斯·雅卡尔(Joseph Maria Charles Jacquard)发明了一种全新的设计。他的织机可以通过编程来生产不同图案的织物。机器根据卡片上打孔的图案来织造织物。通过改变卡片上的打孔图案,可以织出不同的织纹。一系列卡片被连接成环状,这样机器就可以重复编程的图案。

Powered looms produced fabrics with a consistent weave. In 1804, Joseph Maria Charles Jacquard, a French weaver and merchant, came up with a radical new design. His loom could be programmed to produce fabric with different designs. The machine wove the fabric according to a pattern of holes punched into cards. By changing the punching pattern of the cards, a different weave could be produced. Series of cards were linked together in loops so that the machine could repeat the programmed pattern.

于是,在十九世纪初,欧洲既有了手动操作的计算器,也有了蒸汽驱动的可编程织布机。一位从小就对机器着迷的英国数学家开始思考,能否将这两个概念结合起来。蒸汽驱动的可编程机器真的能比人类更快地完成计算,而且更可靠吗?他的想法改变了世界。

And so, at the beginning of the nineteenth century, Europe had both manually operated calculators and steam-powered programmable looms. An English mathematician, fascinated by machines since childhood, began to wonder if he could combine the two concepts. Surely a steam-powered programmable machine could perform calculations much faster, and with greater reliability, than any human could? His idea changed the world.

发条计算机

A clockwork computer

查尔斯·巴贝奇于1791年出生于伦敦南部的沃尔沃斯区。他的父亲是一位富有的银行家,主修数学。最初,他自学成才,18岁时考入剑桥大学。入学后,他发现数学系相当枯燥乏味,令人失望。巴贝奇是个固执的年轻人,不愿讨好考官或潜在的雇主。尽管他是一位优秀的数学家,但毕业后却未能获得学位。任命。在父亲的资助下,巴贝奇决定进行独立的数学研究。他搬到伦敦,进入了首都的科学界,发表了一系列备受推崇的论文。

Charles Babbage was born in 1791 in the South London district of Walworth. The son of a wealthy banker, Babbage studied mathematics. Initially self-taught, he was admitted to the University of Cambridge at the age of eighteen. Once there, he found the mathematics faculty rather dull and disappointing. A stubborn young man, Babbage made no effort to curry favor with his examiners or potential employers. Despite being an excellent mathematician, he failed to gain an academic degree after graduating.appointment. Supported financially by a grant from his father, Babbage decided to undertake his own independent mathematical research. He moved to London and entered the capital's scientific community, publishing a series of well-regarded papers.

科学论文,例如巴贝奇撰写的论文,是研究的命脉。论文是一份描述新想法的报告,由实验结果或数学证明支持,理想情况下两者兼具。科学依赖于证据。证明必须经过检验。实验必须可重复。论文由该领域的专家评审。只有最优秀的论文才能被接受发表。本质上,论文中描述的想法必须是新颖的且经过验证的。期刊出版物或会议报告将新想法传播给科学界感兴趣的各方。论文的发表是科学家职业生涯中的一个里程碑,表明了他或她在该领域的实力和地位。

Scientific papers, such as those written by Babbage, are the lifeblood of research. A paper is a report describing a new idea, supported by either experimental results or mathematical proof, and ideally both. Science depends on proof. Proofs must be tested. Experiments must be repeatable. Papers are reviewed by experts in the field. Only the best are accepted for publication. Essentially, an idea described in a paper must be new and proven. Journal publications, or conference presentations, disseminate new ideas to interested parties in the scientific community. The publication of a paper is a milestone in a scientist's career—an indication of his or her prowess and status in the field.

由于缺乏公共资金,科学研究只能在少数几所大学和少数富有的爱好者中进行。科学辩论经常在富人的沙龙中进行。甚至“科学家”一词也曾是新词。多年来,巴贝奇一直是维多利亚时代绅士科学家的典范。他最终于1828年被任命为剑桥大学卢卡斯数学教授(在他之前,艾萨克·牛顿和后来的斯蒂芬·霍金都曾担任该职位)。他与生俱来的天赋与他长期辛勤工作的能力相得益彰。尽管他是一位技艺精湛的数学家,但他最大的天赋或许是他发明机械装置的能力。

In the absence of public funding, science was conducted at a handful of universities and by a small number of wealthy enthusiasts. Scientific debate often took place in the salons of the wealthy. Even the word 'scientist' was new. For many years Babbage was the epitome of the Victorian gentleman scientist. He was eventually appointed Lucasian Professor of Mathematics at Cambridge in 1828 (as Isaac Newton had been before him and Stephen Hawking later). His innate talent was powerfully complemented by his capacity for long, hard work. Although he was a skilled mathematician, his greatest gift was perhaps his ability to invent mechanical devices.

巴贝奇发表的贡献使他当选为伦敦皇家学会院士。他的职责之一是修订天文学会的数学表格。这些表格列出了重要天象的预测时间和位置。航海家们广泛参考这些表格作为导航辅助工具。制作这些表格需要耗费大量的手工计算,因此表格中经常出现错误。在公海上,一个错误就可能导致船只沉没。

Babbage's published contributions earned him an election as a Fellow of the Royal Society of London. One of his duties was to revise the Astronomical Society's mathematical tables. These tables listed predicted times and positions of notable celestial phenomena. These tables were widely consulted by navigators as an aid to navigation. The manual calculations required to produce the tables were laborious, and as a result the tables often contained errors. On the high seas, an error could result in shipwreck.

为了减轻制作表格的工作量,巴贝奇设计了一台蒸汽驱动的机械机器,可以自动计算和打印表格。十进制数将由齿轮、齿轮和杠杆的位置表示。这台机器必须能够自动执行一系列计算,并在计算过程中存储和重复使用中间结果。该机器被设计为执行单一固定算法,因此缺乏可编程性。尽管如此,该设计仍然比早期需要手动输入每个数字和操作的计算机器取得了显著的进步。巴贝奇制作了一个小型的机器工作模型。英国政府意识到巴贝奇概念的优势,决定资助他建造差分机。

To ease the workload of producing the tables, Babbage designed a steam-powered mechanical machine that could automatically calculate and print the tables. Decimal numbers were to be represented by the positions of cogs, gears, and levers. The machine had to be able to automatically perform a series of calculations, storing and reusing intermediate results as it went. The machine was designed to perform a single fixed algorithm. Therefore, it lacked programmability. Nevertheless, the design represented a significant advance over earlier calculating machines, which required manual input of each number and operation. Babbage made a small working model of the machine. Realizing the advantages of Babbage's concept, the British government decided to fund the construction of his Differential Engine.

然而,差动发动机的建造却充满挑战。零件制造过程中的细微瑕疵导致机器可靠性低下。尽管政府多次投资,巴贝奇和他的助手杰克·克莱门特最终只完成了机器的一部分,就放弃了建造计划。英国财政部总共为该项目花费了近17,500英镑。这笔钱可不是小数目;这笔钱足以从罗伯特·斯蒂芬森先生手中购买22台全新的铁路机车。

However, the construction of the Differential Engine proved to be a challenge. Minor imperfections in the manufacture of the parts made the machine unreliable. Despite repeated investment by the government, Babbage and his assistant Jack Clement only completed part of the machine before construction was abandoned. In total, the British Treasury had spent almost £17,500 on the project. This was not insignificant; it had been enough to purchase 22 brand new railway locomotives from Mr. Robert Stephenson.

尽管巴贝奇的微分机项目失败了,但他仍然对自动运算的想法念念不忘。他设计了一台全新的、更先进的机器——分析机。这台机器将是机械的、蒸汽驱动的、十进制的,并且完全可编程。它借鉴了雅卡尔的织布机,能够读取穿孔卡片上的指令和数据,并能在穿孔卡片上显示结果。分析机将成为第一台通用计算机。

Despite the failure of his Differential Machine project, Babbage was still enamored with the idea of ​​automated arithmetic. He designed a new, even more advanced machine. The Analytical Machine was to be mechanical, steam-powered, and decimal. It was also to be fully programmable. Borrowing from Jacquard's weaving machine, the new machine was to be able to read instructions and data from punched cards. It was also to deliver results on punched cards. The Analytical Machine was to be the first general-purpose computer.

巴贝奇再次向政府寻求资金,但这次政府没有合作。分析机项目陷入停滞。

Babbage again approached the government for funding, but this time it was uncooperative. The Analytical Machine project came to a standstill.

巴贝奇只在1841年向意大利都灵的一群数学家和工程师公开演示过他的分析机一次。其中一位与会者——军事工程师费德里科·梅纳布雷亚(Federico Menabrea)——做了笔记,并在巴贝奇的帮助下,于1842年发表了一篇关于这台机器的论文。这篇论文是用法语写的。另一位巴贝奇的支持者——艾达·洛夫莱斯(Ada Lovelace)——非常钦佩他的工作,并决定将这篇论文翻译成英文。

Babbage gave only one public presentation of his Analytical Engine, in 1841, to a group of mathematicians and engineers in Turin, Italy. One of the attendees—the military engineer Federico Menabrea—took notes and then, with Babbage’s help, published a paper on the machine in 1842. The paper was in French. Another Babbage supporter—Ada Lovelace—greatly admired his work and decided to translate the paper into English.

在查尔斯·巴贝奇(Charles Babbage)的讲座之后,艾达·洛夫莱斯(Ada Lovelace)将梅纳布雷亚(Menabrea)的一篇法语文章翻译成了英文,并在与巴贝奇商议后添加了大量的脚注。这篇文章描述了一些在巴贝奇的分析机上执行算法的程序。

Ada Lovelace translated a French article by Menabrea into English following a lecture by Charles Babbage (right), but also added extensive footnotes in consultation with Babbage. The article describes programs that are supposed to execute algorithms on Babbage's Analytical Engine.

艾达·洛芙莱斯,本名奥古斯塔·艾达·拜伦,1815年出生,是拜伦勋爵和拜伦夫人的女儿。拜伦夫人(安妮·伊莎贝拉·诺埃尔,娘家姓米尔班克)本人也是一位数学家。她的丈夫拜伦勋爵至今仍被认为是英国最伟大的诗人之一。洛芙莱斯和拜伦勋爵的婚姻只维持了一年便分居。拜伦夫人讲述了拜伦勋爵的坏脾气和对她的虐待。关于他不忠的谣言不断流传,导致这位声名狼藉的诗人离开了英国,从此再也没有见过他的女儿。

Ada Lovelace, born Augusta Ada Byron in 1815, was the daughter of Lord and Lady Byron. Lady Byron (Anne Isabella Noel, née Milbanke) was herself a mathematician. Her husband, Lord Byron, is still considered one of the great English poets. Lady and Lord Byron's marriage lasted only a year before the couple separated. Lady Byron recounted his bad moods and his ill treatment of her. Persistent rumours of his infidelity led to the disgraced poet leaving England, never to see his daughter again.

在母亲的鼓励下,年轻的洛夫莱斯学习了科学和数学。这些都是实用的学科,远离诗歌和文学带来的困扰。她十七岁时,在巴贝奇组织的一次社交聚会上认识了他。当时,巴贝奇是一位41岁的鳏夫,带着四个孩子。由于继承了父亲的遗产,他得以在……过着奢侈的生活。他在伦敦马里波恩区多塞特街1号的一栋房子里。他举办的晚会轰动一时——上流社会人士、艺术家和科学家齐聚一堂,热闹非凡。坊间流传着这样的笑话:财富并非获得邀请的必要条件。人们必须至少满足以下三个条件之一:“智慧、美貌或声望”。

Encouraged by her mother, the young Lovelace studied science and mathematics. These were sensible subjects, far removed from the troubling influence of poetry and literature. She met Babbage at one of the social gatherings he organized when she was only seventeen. At the time, Babbage was a 41-year-old widower with four children. Thanks to the inheritance of his father's fortune, he was able to live in style ina house in London, at 1 Dorset Street, Marylebone. His soirees were sensational occasions – a boisterous mix of people from high society, artists and scientists. The joke went around that wealth was not enough to get an invitation. People had to meet at least one of three qualifications: 'intellect, beauty or prestige'.

洛芙莱斯对巴贝奇的计算机器着迷不已。应巴贝奇的邀请,她和母亲参观了差分机的工作原理。巴贝奇和艾达之间建立了友谊。他们定期通信,交流关于分析机和其他科学课题的想法。十九岁时,艾达嫁给了威廉·金,她的名字变成了奥古斯塔·艾达·金,洛芙莱斯伯爵夫人。

Lovelace became fascinated by Babbage's calculating machines. At his invitation, she and her mother viewed the working part of the Differential Engine. A friendship developed between Babbage and Ada. They wrote to each other regularly, exchanging ideas about the Analytical Engine and other scientific subjects. At the age of nineteen, Ada married William King, and her name became Augusta Ada King, Countess of Lovelace.

艾达·洛夫莱斯不仅将梅纳布雷亚的论文翻译成英文,还添加了七个脚注,使其篇幅增加了一倍多。这篇发表于1843年的论文名为《分析机简图》,展现了对未来的展望。虽然分析机最终未能制造出来,但巴贝奇曾写过一份说明书,详细说明了他设想中的机器必须能够执行的任务。这让巴贝奇和洛夫莱斯有机会为当时尚不存在的计算机编写程序。

Not only did Ada Lovelace translate Menabrea's paper into English, she also added seven footnotes, more than doubling its length. The paper, which appeared in 1843 under the title 'Sketch of the Analytical Engine', offered a vision of the future. Although the Analytical Engine was never built, Babbage had written a specification of the tasks that his intended machine had to be able to perform. This gave Babbage and Lovelace the opportunity to write programs for the non-existent computer.

在论文中,作者(原作者梅纳布雷亚和洛夫莱斯)强调了算法与其相关程序之间的联系。他们解释说,算法是一种写下来的抽象计算方法,而巴贝奇和洛夫莱斯的算法则是一系列数学方程式。论文概述了以方程式(或他们称之为代数公式)表达的算法与以穿孔卡片编码的程序之间的等价性:

In the paper, the authors (Menabrea, the original author, and Lovelace) emphasized the connection between an algorithm and its associated program. They explained that an algorithm is a written down abstract method of computation, in the case of Babbage and Lovelace a sequence of mathematical equations. The paper outlined the equivalence of the algorithm expressed as equations – or algebraic formulas, as they called them – and the program encoded on punched cards:

这些卡片只不过是

The cards are nothing more than a translation of

代数公式,或者更确切地说,

algebraic formulas or, better said,

分析性写作的另一种形式。

another form of analytical writing.

数学方程式的序列只有人类才能完成。相比之下,穿孔卡片上的指令可以由分析机自动且高速地执行。

The sequence of mathematical equations could only be performed by a human being. In contrast, the instructions on the punch cards could be performed automatically and at high speed by the Analytical Machine.

洛夫莱斯在论文的补充中展示了一系列以程序形式编码的数值算法。由于缺乏分析引擎,测试程序的唯一方法是手动执行,所有操作都由计算机模拟。在论文的脚注G中,洛夫莱斯追踪了一个用于计算前五个伯努利数的程序的执行过程。该追踪列出了计算机执行指令的顺序,以及每一步得到的结果。洛夫莱斯并不知道,她的追踪方法与古巴比伦算法结合示例的表示方法如出一辙。如今,程序员仍然使用追踪方法更好地理解程序的行为。

Lovelace's additions to the paper showed a series of numerical algorithms encoded as programs. In the absence of an Analytical Engine, the only way to test a program was to execute it manually, with all the operations simulated by the computer. In Footnote G of the paper, Lovelace traces the execution of a program for calculating the first five Bernoulli numbers. The trace is a listing of the sequence of instructions as they would be executed by the computer, together with the results obtained at each step. Unbeknownst to Lovelace, her trace echoes the Old Babylonian representation of algorithms together with worked examples. Today, programmers still use traces to better understand the behavior of their programs.

作者有远见地报告了 程序中出现的错误或缺陷:

With foresight, the authors reported the occurrence of errors, or bugs, in programs:

鉴于实际机制

Given that the actual mechanism at

它的流程完美运行,卡片可以

its processes work flawlessly, the cards can

发出错误的命令。

giving the wrong commands.

讽刺的是,后来在其中一个程序描述中发现了一个错误:本来应该是 4,结果却写成了 3。这便是第一个软件 bug。之后,又出现了更多 bug!

Ironically, a mistake was later discovered in one of the program descriptions: a 3 where a 4 should have been. That was the very first software bug. Many more would follow!

文章还提出了计算机可以处理其他形式信息的想法,而不仅仅是数字:

The article also raises the idea that a computer could process other forms of information, not just numbers:

如果发现一些对象,其基本相互关系可以用抽象的运算科学来表达,并且这些对象也容易通过机器的操作符号和机制的作用进行修改,那么机器可能还可以对数字以外的其他事物进行操作。

The machine might also operate on other things besides numbers, if objects were found whose fundamental reciprocal relations could be expressed by those of the abstract science of operations, and which were also susceptible of modification by the action of the operational notation and mechanism of the machine.

换句话说,虽然分析机的设计初衷是进行算术运算,但它使用的符号也可以表示其他类型的信息。此外,该机器还可以被编程或修改,以处理这些其他类型的数据。作者认为,该机器可以操作代表字母、单词和逻辑值的符号。巴贝奇甚至想过编写程序来玩井字游戏和国际象棋。

In other words, although the Analytical Engine was designed to perform arithmetic, the symbols it used could also represent other types of information. Furthermore, the machine could be programmed, or modified, to handle these other types of data. The authors understood that the machine could manipulate symbols that represented letters, words, and logical values. Babbage playedeven with the thought of writing programs to play tic-tac-toe and chess.

梅纳布雷亚那篇精彩的文章由洛夫莱斯翻译和编辑,首次展现了一门新科学。这门科学融合了算法、编程和数据:计算机科学。又过了一百年,这个领域才被认可并被称为计算机科学。

Menabrea's spectacular article, translated and edited by Lovelace, provided the first glimpse of a new science. A science at the intersection of algorithms, programming, and data: the science of computers. It would take another century before the field was recognized and called computer science.

这部译作和改编作品是洛夫莱斯唯一的学术著作。她多年来身体状况不佳,36岁时因癌症去世。她与巴贝奇始终保持着亲密的友谊,直至生命的终点。应她的遗愿,她被葬于诺丁汉郡哈克诺尔,与她疏远的父亲葬在一起。

This translation and adaptation was Lovelace's only scholarly publication. She had been in poor health for many years and died of cancer at the age of 36. She remained close friends with Babbage to the end. At her request, she was buried next to her estranged father in Hucknall, Nottinghamshire.

巴贝奇终其一生断断续续地致力于他的分析机研究。他的计划一次又一次地因当时机械制造技术的缺陷而受阻。巴贝奇的分析机是又一次辉煌的失败。

Babbage worked on his Analytical Engine intermittently for the rest of his life. Time and again his plans were frustrated by the shortcomings of the mechanical manufacturing technology of his day. Babbage's Analytical Engine was another glorious failure.

尽管如此,巴贝奇依然孜孜不倦。他游历广泛。有一次,他潜入维苏威火山口进行测量。他撰写了经济学、地质学、人寿保险和哲学方面的教科书。除了计算机方面的研究,他还是一位多产的发明家。他涉足政治,甚至参加过选举。晚年,巴贝奇因缺乏权威人士的认可而感到愤慨。他公开抨击伦敦街头音乐家,因为他无法忍受他们嘈杂的音乐。1871年,巴贝奇去世,距洛夫莱斯去世已过去18年,他机械数字计算机的梦想也随之破灭。

Nevertheless, Babbage was indefatigable. He travelled extensively. On one occasion he descended into the crater of Vesuvius for the purpose of measuring it. He wrote textbooks on economics, geology, life insurance and philosophy. And in addition to his work on calculating machines, he was a prolific inventor. He dabbled in politics and even stood for election. In his later years, Babbage became embittered by the apparent lack of recognition from the establishment. He waged a public war of words against the street musicians of London because he found their cacophony intolerable. In 1871, Babbage died, eighteen years after Lovelace, and his dream of a mechanical digital computer died with him.

回想起来,分析机显然包含了现代计算机的所有要素,除了一点。它是机械的,而不是电子的。商用电灯泡直到巴贝奇去世后才由托马斯·爱迪生发明。又过了五十年,才有人尝试制造可编程电子计算机。巴贝奇对算术的贡献是梅纳布雷亚和洛夫莱斯的论文。

In retrospect, it is clear that the Analytical Engine contained all the ingredients of the modern computer, except one. It was mechanical, not electronic. The commercially manufactured electric light bulb was not invented until after Babbage's death by Thomas Edison. It would be another fifty years before anyone would attempt to build a programmable electronic computer. Babbage's legacy to arithmetic was the paper by Menabrea and Lovelace.

在可编程机器尚未出现的情况下,算法和计算的未来发展方向就落在了理论家的肩上。其中最具影响力的一位便是艾伦·图灵。

Without a programmable machine, it was up to theorists to chart the course for the future of algorithms and computation. One of the most influential of them was Alan Turing.

图灵机

The Turing machine

图灵于1912年出生于伦敦。他的父亲是一位殖民地官员,艾伦一岁时,父母返回印度。图灵和他的弟弟留在英国,由一位退役陆军上校和他的妻子照顾。几年后,他们的母亲才回到英国与孩子们团聚。但这段部分家庭团聚的时期并没有持续多久,图灵十三岁时就被送往寄宿学校。

Turing was born in London in 1912. His father was a colonial official, and Turing's parents returned to India when Alan was only a year old. Turing and his brother remained in England, in the care of a retired army colonel and his wife. It was not until several years later that their mother rejoined the children in England, but this period of a partially reunited family did not last long, as Turing was sent to boarding school at the age of thirteen.

在学校,图灵与同班同学克里斯托弗·莫尔科姆结为好友。两人都对科学和数学有着浓厚的兴趣。课堂上,他们会交换笔记,讨论各种难题和证明。图灵对莫尔科姆所走过的路充满敬意。令人难过的是,莫尔科姆于1930年因肺结核去世。图灵深受其害。

At school, Turing befriended his classmate Christopher Morcom. The two shared a keen interest in science and mathematics. In class, they would exchange notes discussing puzzles and proofs. Turing worshipped the ground Morcom walked on. Sadly, Morcom died of tuberculosis in 1930. Turing was deeply affected by his loss.

图灵的母亲埃塞尔·萨拉·图灵(娘家姓斯托尼)在她的回忆录中深情地回忆了她已成年的儿子:

In her memoirs, Turing's mother, Ethel Sara Turing (née Stoney), remembered her adult son with affection:

他有时会心不在焉、恍惚不已,沉浸在自己的思绪中,这有时让他显得害羞[...]。有时,他的害羞甚至会让他陷入尴尬的境地。

He could be absent and dreamy, absorbed in his own thoughts, which sometimes made him seem shy of people […]. There were times when his shyness drove him to awkwardness.

并非所有人都认同他母亲的同情,许多人认为他孤僻不合群。他的一位老师后来推测,图灵的孤僻性格和坚持从基本原理出发解决问题的作风,让他在工作中展现出罕见的大胆。正因为他聪明,图灵很可能对傻瓜缺乏耐心。他还经常做出一些反常的行为,比如在泰迪熊波吉的陪伴下练习讲课,还把杯子拴在暖气片上以防被盗。图灵是一个罕见的组合:他虽然难以相处,却深受同龄人的喜爱。

Not everyone shared his mother's sympathies, and many saw him as a loner. One of his teachers would later speculate that Turing's isolation and insistence on working things out from basic principles led to a rare audacity in his work. Because of his cleverness, Turing probably had little patience for fools. He was also prone to unusual behavior, practicing his lectures with his teddy bear Porgy as an audience and chaining his mug to a radiator to prevent it from being stolen. Turing was a rare combination of someone who was difficult to get along with yet was liked by many of his peers.

图灵获得奖学金进入剑桥大学学习,并于1934年以数学一等荣誉学位毕业。在大学深造期间,图灵在一篇意义非凡的科学论文中发展了三个重要思想:他给出了算法的正式定义,定义了通用计算机必须具备的属性,并运用这些定义证明了某些函数无法计算。令人惊奇的是,图灵在数字计算机诞生之前就完成了所有这些工作。

Turing won a scholarship to study at the University of Cambridge, where he graduated with a first-class honours degree in mathematics in 1934. During his further studies at the university, Turing developed three major ideas in a remarkable scientific paper: he gave the formal definition of an algorithm, he defined the properties that a general-purpose computer must have, and he used those definitions to prove that some functions cannot be computed. Amazingly, Turing did all this before a digital computer had ever been built.

计算机先驱艾伦·图灵,约 1930 年。

Computer pioneer Alan Turing, ca. 1930.

图灵设想了一台假想的计算机,现在被称为图灵机。它由一条无限长的纸带、一个读写头以及一组控制机器运行的指令组成。纸带被分成多个单元。每个单元非常大,只能写入一个符号。读写头每次只能读取或写入一个符号到其正下方的单元。这台机器可以逐个单元地来回移动纸带。它还可以将一个值存储在内存中。这个存储的值被称为机器的当前状态。

Turing imagined an imaginary computer, now known as the Turing machine, consisting of an infinite paper tape, a read/write head, and a set of instructions that control the operation of the machine. The tape is divided into cells. Each cell is so large that only one symbol can be written on it. The read/write head can only read or write a single symbol at a time to the cell directly below it. The machine can move the tape back and forth, cell by cell. It can also store a value in a memory. This stored value is referred to as the current state of the machine.

机器有一组指令或命令来控制机器的运行。这些指令的运行方式与现代计算机中指令的工作方式截然不同。在图灵机中,每条指令由一个条件和三个动作组成,如果条件满足,则执行这些动作。条件取决于机器的当前状态(内存中的值)以及当前读/写头下的符号。如果状态和符号与条件中指定的值匹配,则可以执行与条件相关的动作。允许的操作如下:

The machine has a set of instructions or commands that govern the operation of the machine. The way these instructions function is quite different from how instructions work in modern computers. In a Turing machine, each instruction consists of a condition and three actions, and these actions are performed if the condition is met. The condition depends on the current state of the machine (the value in memory) and the symbol that is currently under the read/write head. If the state and symbol match the values ​​specified in the condition, the actions associated with the condition can be performed. The permitted actions are as follows:

图灵机

THE TURING MACHINE

1. 读/写头可以替换、移除或保留其正下方的符号不变。

1. The read/write head can replace, remove, or leave unchanged the symbol directly below it.

2. 该带可以向左或向右移动一个单元格,或者保持不变。

2. The band can shift left or right by a single cell, or remain unchanged.

3. 内存中的状态可以刷新或保持不变。

3. The state in memory can be refreshed or left unchanged.

图灵设想由一位人类程序员编写程序供计算机执行。程序员将程序和输入数据提供给手动操作机器的员工。回想起来,很容易看出指令的处理非常直接,以至于人类操作员可以被机械或电子输入设备取代。用户输入以下算法:

Turing imagined that a human programmer would write a program for the computer to execute. The programmer would provide the program and input data to an employee who would manually operate the machine. In retrospect, it is easy to see that the processing of the instructions is so direct that the human operator could be replaced by a mechanical or electronic input device. The user enters the following algorithm:

将输入值以符号形式写在纸带上。

Write the input values ​​as symbols on the paper tape.

设置机器的初始状态。

Set the initial state of the machine.

重复以下步骤:

Repeat the following steps:

检查写入/读取头下的当前符号。

Check the current symbol under the write/read head.

检查机器的当前状况。

Check the current condition of the machine.

查找说明以找到合适的条件。

Search the instructions for a suitable condition.

执行与适当条件对应的三个操作。

Perform the three actions corresponding to the appropriate condition.

当内存包含指定的停止条件时停止重复。

Stop repeating when the memory contains the specified stop condition.

当机器停止时,结果就会显示在纸带上。

When the machine stops, the results are found on the paper tape.

以我们目前的标准来看,这台机器至少可以说有些过时了,但它具备计算机的所有必要功能——读写数据、执行易于修改的指令、处理代表信息的符号、根据数据做出决策以及重复执行指令。图灵从未打算制造他的机器。相反,它一直被设想为计算机器的抽象模型——这一想法将推动计算理论的发展。

The machine seems dated to say the least by our current view, but all the necessary features of a computer are present – ​​reading and writing data, executing easily modified instructions, processing symbols that represent information, making decisions based on data, and repeating instructions. Turing never intended his machine to be built. Rather, it was always intended as an abstract model of a calculating machine – an idea that would enable the development of the theory of computation.

本质上,图灵机操纵的是符号。赋予符号意义则取决于人类。符号可以被解读为数字、字母、逻辑值(真/假)、颜色或其他无数可能数量的表示。

Essentially, the Turing machine manipulates symbols. It is up to humans to assign meaning to the symbols. The symbols can be interpreted as a representation of numbers, letters, logical (true/false) values, colors or any other of the countless possible quantities.

图灵机没有精确的算术指令(例如加、减、乘、除)。算术运算是通过应用程序处理纸带上的符号,使其产生算术效果来实现的。例如,计算 2 加 2 的程序会将纸带上的符号“2+2”替换为符号“4”。现代计算机内置了算术运算功能,以提高处理速度。

The Turing machine does not have precise instructions for arithmetic (i.e., addition, subtraction, multiplication, and division). Arithmetic operations are performed by applying programs that process the symbols on the tape in such a way that they produce an arithmetic effect. For example, the calculation 2 plus 2 is performed by a program that replaces the symbols '2+2' on the tape with the symbol '4'. In a modern computer, arithmetic operations are built in so that the processing speed is higher.

图灵提出,他的机器足够灵活,可以执行任何算法。他的提议如今已被广泛接受,但它却是一个硬币的两面。它定义了什么是算法,从而定义了什么是通用计算机。算法是图灵机可以通过编程执行的一系列步骤。通用计算机是指任何能够执行与图灵机可执行程序等价的计算机。

Turing proposed that his machine was flexible enough to execute any algorithm. His proposal, now widely accepted, is two sides of a coin. It defines what an algorithm and therefore a general-purpose computer is. An algorithm is a sequence of steps that a Turing machine can be programmed to execute. A general-purpose computer is any computer that can execute programs equivalent to those that a Turing machine can execute.

如今,通用计算机的标志是图灵完备。换句话说,它可以模拟图灵机的操作。当然,纸带上的符号可以用任意数量的其他物理量代替,例如现代计算机中使用的电压电平。所有现代计算机都是图灵完备的。如果 如果它们不是图灵完备的,它们就不是通用计算机。

Today, the hallmark of a general-purpose computer is that it is Turing- complete. In other words, it can emulate the operation of a Turing machine. The symbols on the paper tape can, of course, be replaced by any number of other physical quantities, for example, the electronic voltage levels used in modern computers. All modern computers are Turing-complete. If If they were not Turing complete, they would not be general-purpose computers.

图灵机的一个关键特性是它能够检查数据并决定下一步该做什么。正是这种能力使计算机超越了自动计算器。计算器无法做出决策。它可以处理数据,但不会对其做出反应。决策能力赋予计算机执行算法的能力。

A key feature of the Turing machine is its ability to inspect data and make decisions about what action to take next. It is this ability that elevates the computer above the automatic calculator. A calculator cannot make decisions. It can process data, but it does not react to it. The ability to make decisions gives computers the power to execute algorithms.

图灵利用他假设的机器作为工具来解决经典的可计算性问题:“所有函数都能通过算法计算吗?” 函数接受一个输入并产生一个值作为输出。乘法是一个可计算函数,这意味着存在一个已知的算法可以计算所有可能输入值的乘法结果。图灵所苦苦思索的问题是:“所有函数都能通过算法计算吗?”

Turing used his hypothetical machine as a tool to tackle the classical problem of computability: "Are all functions computable by algorithms?" A function takes an input and produces a value as an output. Multiplication is a computable function, meaning that there is a known algorithm for computing the result of a multiplication for all possible input values. The problem Turing struggled with was: "Are all functions computable?"

他证明了答案是否定的。有些函数是无法用算法计算的。他证明了某个函数是不可计算的。

He proved that the answer to that is no. There are functions that are not computable with an algorithm. He showed that a certain function was not computable.

停机问题研究是否存在一种算法,它总是能够确定另一种算法是否会终止。停机问题体现了编程中的一个实际困难。程序员很容易偶然编写出一些步骤无限重复的程序。这种情况被称为无限循环。程序永不终止通常是不受欢迎的。如果程序员有一个检查器,可以分析新编写的程序,判断其中是否包含无限循环,那将会很有帮助。这样,就可以防止无限循环的执行。

The halting problem investigates whether there exists an algorithm that can always determine whether another algorithm will terminate. The halting problem expresses a practical difficulty in programming. By accident, programmers can easily write a program in which some steps are repeated indefinitely. This condition is known as an infinite loop. It is generally undesirable for a program to never terminate. It would be helpful if programmers had a checker that could analyze a newly written program to determine whether it contained infinite loops. In this way, infinite loops could be prevented from executing.

图灵证明了,不存在通用的控制程序。他的证明得到了一个悖论的支持。说谎者悖论就是一个很好的例子。这句话很好地概括了它:

Turing proved that there can be no general control program. His proof is supported by a paradox. A good example of this is the liar paradox. It is nicely summarized by the statement:

这句话是错误的。

This sentence is false.

句子就像任何逻辑语句一样,既可以为真,也可以为假。如果句子为真,那么我们必须得出这样的结论:“这句话是假的”。然而,一个操作不能同时为真和假。它表明本身。另一方面,如果句子为假,那么我们必须得出“句子不假”的结论——这又是一个矛盾。由于两种可能性(真与假以及假与真)相互矛盾,因此该陈述是一个悖论。

The sentence, like any logical statement, can be either true or false. If the sentence is true, then we must conclude that: 'This sentence is false'. However, an operation cannot be true and false at the same time. It speaksitself. On the other hand, if the sentence is false, then we must conclude that: 'The sentence is not false' – another contradiction. Since both possibilities (true-and-false as well as false-and-true) are contradictory, the statement is a paradox.

图灵利用一个悖论来证明停机问题不存在解。基于悖论的证明如下:

Turing used a paradox to prove that a solution to the halting problem does not exist. Proofs based on a paradox work as follows:

提出一个你想要证明其为错误的陈述。

Take a statement that you want to prove to be false.

暂时假设该陈述是正确的。

Assume for the moment that the statement is true.

根据假设进行逻辑推理。

Develop a logical reasoning based on the assumption.

如果结论是悖论,而逻辑推理正确,

If the conclusion is a paradox and the logical reasoning is correct,

那么这个假设必定是无效的。

then the assumption must be invalid.

图灵首先假设:

Turing started with the assumption:

有一种控制算法可以解决停机问题。

There is a control algorithm that solves the halting problem.

假设的控制算法指示程序是否停止。如果被测程序停止,则控制程序输出“Stops”。否则,控制程序输出“Does not stop”。控制算法如下:

The hypothetical control algorithm indicates whether a program stops or not. If the program under test stops, the output of the control program is 'Stops'. Otherwise, the control program outputs 'Does not stop'. The control algorithm is then:

以程序作为输入。

Take a program as input.

如果程序总是停止,

If the program always stops,

然后打印输出“停止”,

then print output 'Stops',

否则打印输出“不停止”。

otherwise print output 'Does not stop'.

图灵随后遵循了逻辑推理。他首先创建一个程序,该程序可以将控制程序应用于自身。

Turing then followed a logical line of reasoning. He began by creating a program that would apply the control program to itself.

重复以下步骤:

Repeat the following step:

以控制程序作为输入,运行控制程序。

Run the control program with the control program as input.

当检查程序的输出为“不停止”时停止重复。

Stop repeating when the output of the check program is 'Does not stop'.

图灵对停止问题的解答

TURING'S ANSWER TO THE STOPPING PROBLEM

程序会检查控制程序的输出。如果控制程序输出“Stops”,程序就会无限重复运行,不会停止。然而,控制程序会进行自我检查。只有当控制程序不停止时,控制程序才会停止。反之,如果控制程序停止,控制程序也不会停止。这两种结果是矛盾的。这是一个悖论。

The program examines the output of the control program. If the control program outputs 'Stops', the program repeats itself indefinitely and does not stop. However, the control program checks itself. The control program only stops if the control program does not stop. Conversely, the control program does not stop if the control program stops. The two results are contradictory. There is a paradox.

由于逻辑推理正确,原始假设必然无效。这意味着解决停机问题的检验程序不可能存在。停机问题是不可计算的。有些函数即使在完全知识的情况下也无法计算。可计算性存在一个极限。

Since the logical reasoning is correct, the original assumption must be invalid. This means that a checking program that solves the halting problem cannot exist. The halting problem is not computable. There are functions that are not computable even with complete knowledge. There is a limit to computability.

好消息是,许多有用的函数——输入值到输出值的映射——都是可计算的。难点在于设计出能够输出所需映射的高效算法。

The good news is that many useful functions – maps of input values ​​to output values ​​– are computable. The difficulty lies in devising efficient algorithms that will output the desired map.

1936年,图灵在剑桥大学获得硕士学位后,前往普林斯顿大学攻读博士学位。获得文学学士(BA)或理学学士(B.Sc.)等学位需要听课并通过一系列笔试,而获得哲学博士(PhD)学位则需要完成一项艰巨的研究项目。博士研究的最终目的是提交一篇学位论文,并通过深入的口头(viva voce)考试,即博士学位。博士学位的授予取决于候选人能否基于证据(无论是实验证据还是理论证据)做出新的贡献。图灵的博士研究由美国数学家和逻辑学家阿隆佐·丘奇指导,重点研究可计算性的理论问题。

In 1936, after having received his master's degree from Cambridge the year before, Turing went to Princeton University to pursue a doctorate. While obtaining a degree such as Bachelor of Arts (BA) or Bachelor of Science (B.Sc.) involves attending lectures and passing a series of written examinations, obtaining a Doctor of Philosophy (PhD) degree requires a monumental research project. PhD studies culminate in the submission of a dissertation and an in-depth oral (viva voce ) examination, the doctorate. The award of the doctorate depends on the candidate making a new contribution based on evidence, whether experimental or theoretical. Turing's doctoral research, supervised by the American mathematician and logician Alonzo Church, focused on the theoretical problems of computability.

1938年,图灵重返剑桥大学。1939年9月4日,即英国向纳粹德国宣战的第二天,图灵加入了位于布莱切利园的政府密码学校。布莱切利园代号为X站,是英国战时最高机密的密码破译中心。

Turing returned to Cambridge University in 1938. On 4 September 1939, the day after Britain declared war on Nazi Germany, Turing joined the Government Codes and Ciphers School, at Bletchley Park. Codenamed Station X, Bletchley Park was the UK's top-secret wartime code-breaking centre.

根据来自波兰团队的情报,图灵和戈登·韦尔奇曼开发了一台专用计算机,用于破译德国恩尼格玛密码。这台名为“炸弹”(Bombe)的机电设备于1940年完成。虽然炸弹可以调节,但它无法编程。它只能执行固定算法,就像同时代的其他设备一样。炸弹使团队能够破译截获的德国潜艇无线电通讯。凭借这些信息,英国海军得以精确定位德国U型潜艇的位置,并随后向盟军舰艇发出即将发动的袭击警报。这直接挽救了众多盟军水兵的生命。图灵后来被授予大英帝国勋章,以表彰他在战时的贡献。他的绝密工作细节并未公开。

Based on information received from a Polish group, Turing and Gordon Welchman developed a special-purpose computer to help decipher the German Enigma codes. The Bombe – an electromechanical machine – was completed in 1940. Although it was adjustable, the Bombe could not be programmed. It could only execute a fixed algorithm, like other devices of its generation. The Bombe allowed the team to decipher intercepted radio communications from German submarines. With this information, the British Navy was able to pinpoint the positions of German U-boats and subsequently warn Allied shipping of impending attacks. As a direct result, the lives of many Allied sailors were saved. Turing was later awarded the Order of the British Empire in recognition of his wartime services. Details of his top-secret work were not revealed.

战后,X站解散。图灵加入了位于伦敦的国家物理实验室(NPL),在那里他开始了一个设计通用电子计算机的项目。由于任务难度较大,且图灵与他人合作的能力有限,项目进展缓慢。图灵感到沮丧,于是离开了NPL,回到剑桥,直到曼彻斯特大学向他发出聘用邀请。曼彻斯特大学一直在致力于开发自己的电子计算机。

After the war, Station X was disbanded. Turing joined the National Physical Laboratory (NPL) in London, where he began a project to design a general-purpose electronic computer. Due to the difficulty of the task and Turing's limited ability to work with others, progress was slow. Frustrated, Turing left the NPL and returned to Cambridge, until he was offered a position at the University of Manchester. Manchester had been working on developing its own electronic computer.

图灵毕生都在思考计算机的前景,最终终于拥有了一台。他着手为曼彻斯特大学计算机编程,并编写了一本手册。他发表了一系列科学论文,探讨计算机未来可能的应用。作为现代生物信息学的先驱,他提出计算机可以预测分子在生物系统中的行为。他还提出,计算机可以解决以前人类无法解决的问题。智能需求。他推测,到2000年,通过短信交流的人类审讯者将无法区分人类受试者和计算机。目前还没有人工智能通过这项所谓的图灵测试。

After spending his career pondering the prospect of a computer, Turing was finally able to get his hands on one. He set about programming the Manchester University Computer and wrote a manual for it. He published a series of scientific papers in which he considered possible future applications of computers. In a harbinger of modern bioinformatics, he proposed that computers could predict how molecules might behave in biological systems. He also proposed that computers could tackle problems that had previously been humanintelligence requirements. He speculated that by the year 2000 it should be impossible for a human interrogator, communicating via text messages, to distinguish between a human subject and a computer. No artificial intelligence has yet passed this so-called Turing test.

1952年,图灵报案称家中遭窃。他报警称,他的朋友阿诺德·默里认识这名窃贼。在警方的追问下,图灵承认他和默里之间存在同性恋关系。图灵被控“猥亵行为”。法官判处他接受“激素疗法”——这是化学阉割的委婉说法。图灵曾是一位成功的业余运动员和马拉松运动员,但这种“疗法”损害了他的健康。

In 1952, Turing reported a burglary at his home. He informed the police that a friend of his, Arnold Murray, knew the burglar. When pressed by the police, Turing confirmed that he and Murray were in a homosexual relationship. Turing was charged with "indecent behavior." The judge sentenced him to undergo "hormone therapy"—a euphemism for chemical castration. Turing had previously been a successful amateur athlete and marathon runner, but the "therapy" had taken a toll on his health.

两年后,41岁的图灵被发现死在自家床上。毒理学分析显示,死因是氰化物中毒。验尸官的调查结论是图灵自杀。许多人对这一结论提出质疑。图灵没有留下任何遗言。在图灵的床边发现了一个吃了一半的苹果,但从未进行过氰化物检测。他的朋友作证说,图灵死前几天心情很好。有人认为,图灵是被情报人员谋杀的,目的是防止他泄露战争机密。这种猜测似乎牵强附会。图灵经常在家里进行化学实验。他的死可能只是一场意外。

Two years later, at the age of 41, Turing was found dead in his own bed. Toxicology revealed that the cause of death was cyanide poisoning. The coroner's examination concluded that Turing had committed suicide. Many have questioned this conclusion. No note had been left. A half-eaten apple was found next to Turing's bed, but it was never tested for cyanide. His friends testified that he had been in a good mood in the days before his death. Some have suggested that Turing was murdered by intelligence officers to prevent him from divulging wartime secrets. This speculation seems far-fetched. Turing regularly conducted chemical experiments at home. It is possible that his death was simply the result of an accident.

X站事件直到20世纪70年代才被公开。就连在那里工作的男女员工的家人也对他们在布莱切利园的所作所为一无所知。直到2013年,图灵才因“同性恋行为罪”被伊丽莎白女王追授赦免令,这才算是姗姗来迟。

The events at Station X were kept secret until the 1970s. Even the families of the men and women who worked there knew nothing of their exploits at Bletchley Park. Very belatedly, in 2013, Turing was posthumously pardoned by Queen Elizabeth for his 'crime of homosexual activity'.

图灵对计算机科学的贡献是巨大的。他定义了计算机和算法;他设定了可计算性的极限;他的图灵机至今仍是所有计算机比较的试金石;通过图灵测试已成为人工智能领域最大的挑战之一。然而,比他的发明更重要的是散布在他文章中的那些思想瑰宝。他看似漫不经心的思考,开辟了广阔的为追随他脚步的人们提供了未来研究的机会。为了表彰他的成就,计算机科学领域的最高荣誉——ACM 图灵奖以他的名字命名。该奖项每年由美国计算机协会 (ACM) 颁发,奖金总额达 100 万美元,旨在表彰那些“具有持久且重大的技术意义”的贡献者。

Turing's legacy to computer science is extensive. He defined computers and algorithms; he set limits on computability; his Turing machine remains the touchstone by which all computers are compared; passing the Turing test has become one of the greatest challenges in artificial intelligence. More important than his inventions, however, are the gems of ideas scattered throughout his articles. His seemingly casual musings opened up extensiveopportunities for future research for those who followed in his footsteps. In recognition of his achievements, the highest honor in computer science, the ACM Turing Award, is named after him. The annual $1 million prize is awarded by the Association of Computing Machines (ACM) for contributions "of lasting and significant technical importance."

当图灵忙于布莱切利园破解恩尼格玛密码时,其他地方也在进行可编程和(主要是)电子计算机的研究。在柏林,德国工程师康拉德·楚泽(Konrad Zuse)构建了一系列基于继电器的机电计算设备。可编程且全自动的 Z3 于 1941 年完成。虽然并非完全图灵完备,但 Z3 融入了许多先进的功能,这些功能后来在其他地方被重新发明。战争在很大程度上阻碍了楚泽的努力。零件短缺、资金有限以及空袭都导致了 Z 系列的缓慢发展。到 1945 年,楚泽的工作几乎陷入停滞。图灵完备的 Z4 计算机的开发被严重推迟。直到 1949 年,楚泽才重建公司来生产他的设备。Z4 最终于 1950 年交付给苏黎世联邦理工学院,使这所理工大学拥有了当时欧洲大陆唯一一台可以运行的计算机。楚泽的公司制造了二十多台计算机。它最终被德国电子集团西门子收购。

While Turing was busy cracking the Enigma codes at Bletchley Park, work on programmable and (largely) electronic computers was underway elsewhere. In Berlin, German engineer Konrad Zuse built a series of relay-based electromechanical computing devices. The programmable and fully automatic Z3 was completed in 1941. Although not completely Turing-complete, the Z3 incorporated many advanced features that would later be reinvented elsewhere. Zuse's efforts were largely hampered by the war. A lack of parts, limited funding, and aerial bombardment all contributed to the slow development of the Z series. By 1945, Zuse's work had virtually ground to a halt. Development of the Turing-complete Z4 computer was fatally delayed. It was not until 1949 that Zuse would re-establish a company to manufacture his devices. The Z4 was eventually delivered to ETH Zurich in 1950, giving that technical university the only working computer on the European mainland at the time. Zuse's company built more than twenty computers. It was eventually acquired by Siemens, the German electronics conglomerate.

在美国,第二次世界大战促进了第一台计算机的发展。受巴贝奇微分机演示模型的启发,霍华德·艾肯在哈佛大学设计了一台电子计算机。在IBM的资助下,哈佛Mark I(又称自动序列控制计算器)于1944年交付。这台机器完全可编程且自动化,可以连续运行数天。然而,该设备缺乏决策能力,因此哈佛Mark I并非图灵完备的,也并非一台通用计算机。

In the United States, World War II was a boon for the development of the first computers. Inspired by a demonstration model of Babbage's Differentiation Machine, Howard Aiken designed an electronic computer at Harvard University. Financed by IBM, the Harvard Mark I (also known as the Automatic Sequence Controlled Calculator) was delivered in 1944. Fully programmable and automatic, the machine could run for days without interruption. However, the device lacked the ability to make decisions, and as such the Harvard Mark I was not Turing-complete and therefore not a general-purpose computer.

世界上第一台功能齐全的数字通用计算机在宾夕法尼亚州诞生。这台机器由美国陆军资助,并用于军事用途,于1946年向美国陆军公开亮相。集合的媒体。这是算法发展革命的开始。

The world's first fully functional digital general purpose computer was built in Pennsylvania. Funded by the U.S. Army and with a military application, the machine was unveiled to the U.S. Army in 1946.the assembled press. It was the beginning of a revolution in the development of algorithms.

 

 

从最早的文字记载开始,人类就表现出对天气的迷恋,以及对其变化无常、有时致命的性质的恐惧。

From the earliest writings, humans have shown a fascination with the weather and a fear of its fickle and sometimes deadly nature.

4

4

天气预报

Weather forecasts

狂风肆虐了六天七夜,洪水和暴风席卷了大地;

到了第七天,飓风、洪水和如同产妇般挣扎的破坏终于平息了。大海平静,狂风平息,洪水也止住了。

For six days and seven nights the wind raged, and floods and tempests overwhelmed the land;

When the seventh day came, the hurricane, flood and ravages, Which had struggled like a woman in travail, were stilled. The sea was calm, the imhulli wind was stilled, the flood held back.

《吉尔伽美什史诗》,约公元前 2000 年

The Epic of Gilgamesh, circa 2000 BC

自古以来,人们的生死存亡都取决于变幻莫测的天气。通常,如果能提前一天知晓天气,人类的灾难就有可能避免。公元前2000年,精准的天气预报是诸神的专属。水手和农民都受传统和预兆的指引。

Since time immemorial, lives have depended on the vagaries of the weather. Often, human disasters could have been prevented if the weather had been known just a day earlier. In 2000 BC, accurate weather prediction was the preserve of the gods. Sailors and farmers were guided by traditions and omens.

大约公元前650年,巴比伦人试图通过观察云层形成来更准确地预测天气。大约公元前340年,希腊哲学家亚里士多德撰写了《气象学》,这是第一部关于天气本质的重要著作。他在吕克昂学院的继任者泰奥弗拉斯托斯编纂了一本姊妹篇《征兆之书》,其中介绍了风的知识和天气预报,但未提及成因或解释。近两千年来,这两本书一直是该领域无可争议的权威著作。不幸的是,它们都从根本上犯了错误。

Around 650 BC, the Babylonians attempted to predict the weather with greater accuracy based on the observation of cloud formations. Around 340 BC, the Greek philosopher Aristotle wrote Meteorologica, the first major work on the nature of weather. His immediate successor at the Lyceum, Theophrastus, compiled a companion text, The Book of Signs, on the knowledge of winds and weather forecasting, but without mention of causes or explanations. The two books remained the undisputed standard works on the subject for almost two thousand years. Unfortunately, they were both fundamentally wrong.

在十八世纪思想革命——启蒙运动之后的岁月里,科学家开始记录精确的天气状况测量数据。一些国家建立了中央气象服务机构。1854年,英国成立了气象局,六年后,美国气象局也开始运作。借助当时电报的发明,这些机构从偏远地区收集气象数据,并据此提供天气预报。他们的预报方法非常基础。气象学家只是在历史数据中寻找与当前天气状况最接近的近似值。然后,他们预测天气将再次以相同的方式发展。有时,这种近似值会准确,但偶尔也会出现灾难性的误差。

In the years following the Enlightenment, the eighteenth-century revolution in thinking, scientists began to record accurate measurements of weather conditions. Several countries established central meteorological services. In 1854, the United Kingdom established the Meteorological Office, and six years later the U.S. Weather Bureau began operations. Aided by the recent invention of the electric telegraph, these agencies collected meteorological data from remote areas and, based on that information, provided weather forecasts. Their forecasting methods were very basic. Meteorologists simply looked within historical data for the closest approximation of current conditions. Then they predicted that the weather would develop in the same way again. Sometimes that approximation worked. But now and then it was disastrously wrong.

20世纪初,人们迈出了迈向更精确预报方法的第一步。美国气象局局长克利夫兰·阿贝指出,地球大气本质上是多种气体的混合物。他认为,气体在大气中的行为应该与在实验室中的行为相同。当时的科学家能够预测气体在实验室中暴露于高温、高压和运动时的行为。气象学家当然也可以运用同样的科学定律来预测大气中气体暴露于太阳热量和风的吹拂下的行为。流体动力学(作用于流体的力)和热力学(作用于流体的热量)定律早已为人所知。为什么不把它们应用于大气呢?

The first step toward a more precise method of forecasting was taken in the early twentieth century. Cleveland Abbe, director of the US Weather Bureau, pointed out that the Earth's atmosphere was essentially a mixture of gases. He argued that gases should behave in the atmosphere just as they do in the laboratory. Scientists of his day could predict what gases would do in the laboratory when exposed to heat, pressure, and motion. Surely meteorologists could use the same scientific laws to predict what gases would do in the atmosphere when exposed to the heat of the sun and the flow of the wind? The laws of fluid dynamics (forces acting on fluids) and thermodynamics (heat acting on fluids) were known. Why not apply them to the atmosphere?

此后不久,挪威科学家威廉·比耶克内斯(Vilhelm Bjerknes)提出了一种两步预报方法。第一步是测量当前的天气状况。第二步是使用一组方程式来预测未来的气压、温度、密度、湿度和风速。比耶克内斯根据已知的物理定律推导出这些方程式。由于这些方程式的复杂性,他无法直接从这些方程式中得到解。因此,他借助天气图和图表,将观测结果转化为对未来天气状况的估计。每张天气图都旨在显示未来一段时间的天气情况。比耶克内斯声称,通过重复这些步骤,就可以对未来进行天气预报。 定向。第一次迭代中条件的输出可以作为第二次迭代的输入,依此类推。

Shortly thereafter, Norwegian scientist Vilhelm Bjerknes proposed a two-step method for forecasting. The first step involves measuring the current state of the weather. The second uses a set of equations to predict the future pressure, temperature, density, humidity, and wind speed of the atmosphere. Bjerknes derived these equations from known physical laws. Because of their complexity, he could not derive a direct solution from these equations. Instead, he turned to weather maps and graphs to convert observations into estimates of future conditions. Each weather map was designed to show the weather a fixed time period ahead. By repeating these steps, Bjerknes claimed, weather forecasts could be made into the future. directed. The output of the conditions in the first iteration could serve as input in the second, and so on.

尽管比耶克内斯的迭代方法是一项突破,但他的方法的精度受到天气图和图表的限制。需要一种可靠的方法,根据当前的测量结果计算未来的天气状况。这个问题充满了困难。方程式非常复杂,似乎无法求解。

Although Bjerknes's iterative method was a breakthrough, the precision of his approach was limited by the weather maps and graphs. A reliable method was needed to calculate future conditions from current measurements. The problem was fraught with difficulties. The equations were complicated and seemingly impossible to solve.

一位在气象学方面经验很少的男子决定接受挑战。

A man with little experience in meteorology decided to take up the challenge.

数值预测

Numerical predictions

刘易斯·弗莱·理查森,1881年出生于英国纽卡斯尔,曾在纽卡斯尔大学和剑桥大学国王学院学习自然科学。获得博士学位后,他曾担任过一系列短期研究职位,研究流体流动和微分问题。1913年,他被任命为偏远的埃斯克代尔缪尔气象观测站的站长。埃斯克代尔缪尔位于苏格兰南部高地,风景秀丽,风光旖旎,植被稀疏。理查森的职责包括记录天气、监测地震活动以及记录地球磁场的变化。幸运的是,这份工作让他拥有一处住所和充足的空闲时间。在“埃斯克代尔缪尔阴冷潮湿的荒凉之地”,理查森开始了一项任务,旨在开发和测试一种用于预测天气的数值算法。理查森的实验以不容置疑的物理定律为基础。

Lewis Fry Richardson, born in 1881 in Newcastle, England, studied natural sciences at Newcastle University and King's College, Cambridge. After receiving his doctorate, he held a series of short-term research positions working on fluid flow and differential problems. In 1913, he was appointed superintendent of the remote Eskdalemuir weather observatory. Situated in the Highlands of southern Scotland, the Eskdalemuir landscape is beautiful, windswept, and sparsely vegetated. Richardson's duties included recording the weather, monitoring seismic activity, and recording variations in the Earth's magnetic field. Fortunately, the position came with a home and plenty of free time. Amid "the bleak and damp solitude of Eskdalemuir," Richardson set out on a mission to develop and test a numerical algorithm for predicting the weather. Richardson's experiment was underpinned by the unassailable laws of physics.

理查森将大气划分为一个假想的三维网格单元 每个单元的尺寸可能为100英里乘100英里,高度为2英里(1英里等于1.609公里)。他假设单元内的大气相当均匀。换句话说,单元内所有点的风速、风向、湿度、气压、温度和密度大致相同。为了记录大气状态,他记录了每个单元的这些量值。这样,当时的状况就被一系列数字所表示。

Richardson divided the atmosphere into an imaginary three-dimensional grid of cells. A cell might be one hundred miles by one hundred miles and two miles high (a mile is 1.609 kilometers). He assumed that within a cell the atmosphere is fairly homogeneous. In other words, all points in the cell have approximately the same wind speed, wind direction, humidity, pressure, temperature, and density. To record the state of the atmosphere, he recorded the values ​​of these quantities for each cell. In this way, the prevailing conditions were represented by a series of numbers.

为了确定天气状况如何随时间变化,理查森将每天划分为一系列时间步长。例如,一个时间步长可以是一小时。他从观测到的天气状况入手,计算下一个时间步长的可能天气状况。为了做出这一判断,他运用了实验室中发现的气体方程,以便根据前一个时间步长中某个单元自身及其邻近单元的状态来计算其状态。理查森对每个单元都进行了这些计算。然后,将一个时间步长的完整数值表作为输入,计算下一个时间步长的天气状况。他对大气顶部和底部的邻近单元使用了特殊的方程。他在公式中允许太阳加热随时间变化。他甚至考虑了地球自转的影响。理查森逐个单元、逐个时间步长地计算天气。他的算法可以概括如下:

To determine how conditions varied over time, Richardson divided each day into a series of time steps. A time step might be, for example, an hour. Starting with the observed conditions, he calculated the likely state of the weather at the next time step. To make this determination, he used the gas equations discovered in the laboratory so that he could calculate the state of a cell based on its own state and that of its neighboring cells at the previous time step. Richardson performed these calculations for each cell. The complete table of values ​​for a time step was then used as input to calculate the conditions at the next time step. He used special equations for neighboring cells at the top and bottom of the atmosphere. He allowed solar heating in the formulas to depend on the time of day. He even included the effect of the Earth's rotation. Cell by cell, time step by time step, Richardson calculated the weather. His algorithm can be summarized as follows:

数值天气预报员刘易斯·弗莱·理查森,1931 年。

Numerical weather forecaster Lewis Fry Richardson, 1931.

测量每个单元的初始条件。

Measure the initial conditions in each cell.

在每个时间步重复以下步骤:

Repeat the following for each time step:

对每个单元格重复以下步骤:

Repeat the following for each cell:

根据细胞状态计算细胞状态

Calculate the cell state from the state of the cell

以及前一时间步骤中的相邻细胞。

and the neighboring cells during the previous time step.

当所有单元格都已处理完毕后停止重复。

Stop repeating when all cells have been processed.

一旦所有时间步骤都已处理完毕,就停止迭代。

Stop iterating once all time steps have been processed.

提交完成的预测。

Submit the completed prediction.

如今,我们把理查森的算法称为 “模拟”。它通过计算预测真实物理系统随时间的变化。驱动模拟的方程模拟了 真实条件的动态。

Today we would call Richardson's algorithm a simulation . It predicts, through calculations, how a real physical system changes over time. The equations that drive the simulation model the dynamics of the real conditions.

理查森利用1910年5月20日在德国采集的历史气象数据测试了他的算法。他尝试根据六小时前的测量数据,预测地图上两个地点的气压和风速。理查森认真地运用他的算法,手动完成每一次计算。这耗费了他数月的时间。

Richardson tested his algorithm using historical weather data taken over Germany on May 20, 1910. He attempted to predict the air pressure and wind speed at two locations on the map based on measurements taken six hours earlier. Richardson applied his algorithm vigorously, performing each calculation manually. It took him months.

最终,理查森的预测被证明极其不准确。他的算法估计地表气压将升至145百帕——这是一个完全不切实际的数值。事实上,那天的气压几乎没有变化。理查森将这种差异归咎于他对初始风速的指示存在错误。

In the end, Richardson’s predictions proved to be terribly inaccurate. His algorithm estimated that the surface pressure would rise to 145 hPa – a completely unrealistic value. In fact, the pressure hardly varied that day. Richardson blamed the difference on errors in how he had indicated the initial winds.

他毫不气馁,于1922年将自己的研究成果发表在《数值过程天气预报》一书中。书中,他描绘了一个大厅,大厅里有64000名人工计算员,在机械计算员的协助下,实时计算天气预报。

Undaunted, he published his results in 1922 in the book Weather Prediction by Numerical Process. In it, he sketched a picture of a large hall in which 64,000 human calculators, aided by mechanical calculators, would calculate the weather forecast in real time.

理查森的书反响不佳。他的算法极其不准确,也极其不切实际。它需要巨大的计算能力。唯一的出路是使用高速计算器。直到近三十年后,数值天气预报才再次受到关注。

Richardson's book was not well received. His algorithm was extremely inaccurate and extremely impractical. It required an enormous amount of computing power. The only way forward was with a high-speed calculator. It would be almost thirty years before numerical weather prediction came into focus again.

埃尼阿克

ENIAC

第一台通用计算机是在二战期间由宾夕法尼亚大学设计和制造的。ENIAC(电子数字积分计算机)是由电气工程与应用科学系的两位教授约翰·莫奇利和普雷斯珀·埃克特设计的。然而,命运的安排,大部分功劳都归于世界著名数学家约翰·冯·诺依曼。

The first working general purpose computer was designed and built at the University of Pennsylvania during World War II. The ENIAC (Electronic Numerical Integrator And Computer) was designed by John Mauchly and Presper Eckert, two professors at the Department of Electrical Engineering and Applied Science. By a twist of fate, however, most of the credit went to the world-famous mathematician Johann von Neumann.

莫奇利1907年出生于辛辛那提。他才华横溢,甚至在获得基础学士学位之前就被允许攻读物理学博士学位。博士毕业后,莫奇利被任命为宾夕法尼亚州乌尔西努斯学院的副教授。

Mauchly was born in Cincinnati in 1907. He was so talented that he was allowed to begin his PhD in physics before he had even earned his more basic bachelor's degree. After his PhD, Mauchly was appointed associate professor at Ursinus College in Pennsylvania.

1941年,莫奇利在宾夕法尼亚大学摩尔学院选修了一门电气工程课程。该课程由美国海军资助,侧重于军事电气工程。刚从摩尔学院毕业的埃克特是该课程的讲师之一。埃克特虽然成绩不及格,但作为一名工程师,他拥有出色的实践技能。尽管莫奇利比埃克特大十二岁,但两人一拍即合,都对机械有着浓厚的兴趣。课程结束后,莫奇利被摩尔学院聘用。

In 1941, Mauchly took a course in electrical engineering at the Moore School of the University of Pennsylvania. Funded by the U.S. Navy, the course focused on military electrical engineering. Eckert, a recent Moore graduate, was one of the instructors in the course. Although Eckert was not a top student, he had excellent practical skills as an engineer. Although Mauchly was twelve years older than Eckert, the two hit it off, both sharing a fascination with machines. After the course, Mauchly was hired by the Moore School.

在二战的阴影下,摩尔学院为美国陆军招募了一批“人机计算机”。这些“人机计算机”受雇于位于马里兰州阿伯丁试验场附近的弹道研究实验室 (BRL)。在摩尔学院机械计算器的协助下,计算机科学家团队为炮兵创建了弹道表。炮兵军官在战场上使用这些弹道表来确定火炮的正确射击角度。军官可以利用这些弹道表,将装备类型、气压、风速、风向、目标距离以及目标行为等因素考虑在内。一百名女性数学研究生在BRL工作,进行着这些要求高且耗时的计算。即使有这么多人手,实验室也难以满足需求。

In the shadow of World War II, the Moore School played host to human computers working for the U.S. Army. These human computers were employed by the Ballistic Research Laboratory (BRL), located at the nearby Aberdeen Proving Ground in Maryland. The team of computer scientists, assisted by the mechanical calculators of the Moore School, created ballistic tables for artillery. The tables were used on the battlefield by artillery officers to determine the proper firing angle for their guns. With the tables, an officer could take into account the type of equipment, air pressure, wind speed, wind direction, distance to target, and target behavior. A hundred female graduate mathematicians worked at the BRL to perform the demanding and time-consuming calculations. Even with that many workers, the laboratory could not keep up with the demand.

1942年,莫奇利撰写了一份提案,概述了电子计算机的设计。他的报告在摩尔学院内部传阅。轨道制表工作的指挥官赫尔曼·戈德斯坦中尉听说了这份文件。作为密歇根大学的数学教授,戈德斯坦立即意识到莫奇利的计算机有潜力解决弹道计算的瓶颈问题。他联系了莫奇利。戈德斯坦听后非常高兴,便向陆军上级申请资金,以帮助莫奇利和埃克特建造他们的机器。

In 1942, Mauchly wrote a proposal outlining the design of an electronic computer. His report circulated within the Moore School. Lieutenant Herman Goldstine, commander of the orbit tabulation effort, heard about the document. A professor of mathematics at the University of Michigan, Goldstine immediately recognized the potential for Mauchly's computer to solve the bottleneck in ballistics calculations. He contacted Mauchly. Delighted by what he heard, Goldstine appealed to his Army superiors for funds to enable Mauchly and Eckert to build their machine.

ENIAC 的研发工作始于 1943 年。年轻力壮的埃克特被任命为总工程师。更为成熟的莫奇利担任埃克特的顾问。戈德斯坦则担任项目经理兼数学家。

Work on ENIAC began in 1943. The youthful and energetic Eckert was appointed chief engineer. The more mature Mauchly served as an advisor to Eckert. Goldstine was the project manager and mathematician.

尽管ENIAC的设计初衷是计算火炮表,但它却是一台功能齐全的通用计算机。它是可编程的,尽管需要连接电线和插头。它可以执行计算、存储数值并做出决策。与巴贝奇的分析机一样,ENIAC也能处理十进制数。这台机器主要由电子设备组成,还有一些机电元件,体积庞大,重约27吨,占地1500平方英尺。一排排电子电路被安置在沿着摩尔学院地下室墙壁排列的落地柜中。柜子正面装饰着一排排的灯泡和电源插座。更多的柜子被放置在堆叠的设备之间,这些柜子配备了轮子。无数的电线以几乎难以理解的图案在接触点之间蜿蜒曲折。

Although intended to calculate artillery tables, the ENIAC was a full-fledged general-purpose computer. It was programmable, albeit with wires and plugs. It could perform calculations, store values, and make decisions. Like Babbage's Analytical Engine, the ENIAC processed decimal numbers. Largely electronic, with some electromechanical components, the machine was enormous, weighing some 27 tons and covering 1,500 square feet. Racks of electronic circuits were housed in floor-to-ceiling cabinets that ran along the walls of the Moore School basement. Row upon row of light bulbs and electrical outlets decorated the fronts of the cabinets. More cabinets, this time equipped with wheels, were placed among the stacked equipment. Countless wires snaked between contact points in almost incomprehensible patterns.

1946年的ENIAC团队。

从左到右:Homer Spence;总工程师J. Presper Eckert;顾问工程师John W. Mauchly博士;Elizabeth Jennings(也叫Betty Jean Jennings Bartik);联络官Herman H. Goldstine上尉;Ruth Lichterman。

The ENIAC team in 1946.

From left to right: Homer Spence; J. Presper Eckert, chief engineer; Dr. John W. Mauchly, consulting engineer; Elizabeth Jennings (also Betty Jean Jennings Bartik); Captain Herman H. Goldstine, liaison officer; Ruth Lichterman.

在电子设备中,一小群程序员正努力让这台运转不灵的机器运转起来。ENIAC 的程序员们都来自为英国研究实验室(BRL)工作的数学家队伍。凯瑟琳·麦克纳尔蒂(后来改名为莫奇利和安东内利)、(贝蒂)吉恩·詹宁斯(后来改名为巴蒂克)、(弗朗西斯)贝蒂·霍尔伯顿(后来改名为斯奈德)、玛琳·韦斯科夫(后来改名为梅尔策)、弗朗西斯·比拉斯(后来改名为斯宾塞)和露丝·利希特曼(后来改名为泰特尔鲍姆)都在苦苦思索如何让这台令人眼花缭乱的机器运转起来。这台机器简直就是一场噩梦。多个单元同时工作。每个单元的输出必须精确计时,才能同步数据传输。零件不断损坏。为了简化这项工作,戈德斯坦的妻子、学校老师阿黛尔·戈德斯坦(娘家姓卡茨)编写了这台机器的第一本用户手册。

Amidst the electronic equipment, a small cadre of programmers toiled to coax the fickle machine into action. The ENIAC programmers were drawn from the ranks of mathematicians working for the BRL. Kathleen McNulty (later Mauchly and Antonelli), (Betty) Jean Jennings (later Bartik), (Frances) Betty Holberton (later Snyder), Marlyn Wescoff (later Meltzer), Frances Bilas (later Spence), and Ruth Lichterman (later Teitelbaum) puzzled out how to make the bewilderingmachine. It was a nightmare. Multiple units were working simultaneously. The output from each had to be timed precisely so that the data transmission could be synchronized. Parts kept breaking. To make the task easier, Adele Goldstine (née Katz), Goldstine’s wife and a teacher at the school, put together the first user manual for the machine.

随着ENIAC接近完工,莫奇利和埃克特开始思考继任者。1944年,他们提出了一种改进的设备——EDVAC(电子离散变量自动计算机)。英国研究实验室(BRL)再次批准了资助。EDVAC的研发工作很快就开始了。大约在同一时间,戈德斯坦为项目引入了一位新的合作伙伴。

As the ENIAC neared completion, Mauchly and Eckert began thinking about a successor. In 1944, they proposed an improved device – the EDVAC (Electronic Discrete Variable Automatic Computer). Once again, the BRL approved funding. Work on the EDVAC began soon afterward. Around the same time, Goldstine introduced a new collaborator to the project.

约翰·冯·诺依曼于1903年出生于匈牙利城市布达佩斯。他出身富裕家庭,十岁前接受私人教育。高中时,他展现出对数学的特殊天赋,这让他在十八岁之前就写出了第一篇研究论文。冯·诺依曼后来进入布达佩斯大学学习数学。与此同时,他在瑞士苏黎世获得了化学学位。在苏黎世,他没有刻意去听课,而是直接参加考试。他后来能够流利地说英语、德语和法语,拉丁语和希腊语也勉强过关。

John von Neumann was born in 1903 in the Hungarian city of Budapest. Growing up in a wealthy family, he received private education until the age of ten. In high school, he showed a special aptitude for mathematics, which led him to write his first research paper before he was eighteen. Von Neumann went on to study mathematics at the University of Budapest. At the same time, he obtained a degree in chemistry in Zurich, Switzerland. He made no effort to attend lectures in Zurich. He simply showed up for the exams. He would become fluent in English, German, and French, and passable in Latin and Greek.

1931年,冯·诺依曼被任命为普林斯顿大学教授。在那里,他与爱因斯坦一起成为高等研究院(IAS)的成员。曾在IAS工作的利昂·哈蒙(Leon Harmon)对冯·诺依曼的描述如下:

In 1931, von Neumann was appointed professor at Princeton University. There he joined Einstein as a member of the Institute for Advanced Study (IAS). Leon Harmon, who worked at the IAS, describes von Neumann as follows:

一个真正的天才,我所认识的唯一一个天才。

A true genius, the only one I've ever known.

我见过爱因斯坦、奥本海默、泰勒,还有一大堆其他的人物。冯·诺依曼是我见过的唯一一个天才。其他人也都超级聪明,自命不凡。但冯·诺依曼的头脑包罗万象。他能解决任何领域的问题,他的大脑永不停歇,永不停歇。

I met Einstein, Oppenheimer, Teller, and a whole bunch of those other guys. Von Neumann was the only genius I ever met. The others were super-smart and great prima donnas. But Von Neumann's mind was all-encompassing. He could solve problems in any field, and his mind was constantly working, never resting.

冯·诺依曼性格热情友好,深受人们喜爱。大家都叫他“约翰尼”。他谦逊地倾听,善于吸收新想法。鉴于他浮夸的约翰尼西装革履,豪车频出,幽默感却很粗俗。这位伟大的知识分子热爱社交,也喜欢八卦。

With a warm and friendly personality, Von Neumann was well-liked. Everyone knew him as "Johnny." He had the humility to listen and the ability to absorb ideas. Given his flashysuits and fast cars, Johnny had a crude sense of humor. The great intellectual loved people and gossip.

第二次世界大战期间,冯·诺依曼获准离开普林斯顿大学,参与军事项目。他深度参与了曼哈顿计划,参与了第一颗原子弹的设计。这个项目需要大量的计算。冯·诺依曼意识到需要一种计算速度比人类更快的机器。1944年,他在马里兰州阿伯丁的一个火车站偶然遇到了戈德斯坦。戈德斯坦向他做了自我介绍。两人开始交谈,或许是为了给冯·诺依曼留下深刻印象,戈德斯坦提到了他在ENIAC(电子计算机)方面的工作。这立刻引起了冯·诺依曼的兴趣。戈德斯坦邀请了他,冯·诺依曼随后以顾问的身份加入了ENIAC项目。

During World War II, Von Neumann was granted leave from Princeton to contribute to military projects. He was closely involved in the Manhattan Project, in the design of the first atomic bomb. This project required large numbers of calculations. Von Neumann realized the need for a machine that could calculate faster than any human. In 1944, he met Goldstine at a train station in Aberdeen, Maryland, apparently by chance. Goldstine introduced himself. The two started talking, and perhaps to impress Von Neumann, Goldstine mentioned his work on the ENIAC. This immediately aroused Von Neumann's interest. Goldstine invited him, and Von Neumann subsequently joined the ENIAC project as an advisor.

埃克特后来谈到此事:

Eckert later said about this:

冯·诺依曼很快就明白了我们在那里做什么。

Von Neumann understood quite quickly what we were doing there.

1945年6月,冯·诺依曼撰写了一份长达101页的报告,题为 《EDVAC报告初稿》。报告详细描述了新的EDVAC设计,但并未提及其发明者莫奇利和埃克特。经戈德斯坦许可,该报告在项目参与者中分发。冯·诺依曼是EDVAC初稿的唯一作者,被广泛认为是该设计的幕后策划者。埃克特抱怨道:

In June 1945, von Neumann wrote a 101-page report entitled First Draft of a Report on the EDVAC. The report described the new EDVAC design in detail but made no mention of its inventors, Mauchly and Eckert. With Goldstine's permission, the report was distributed among those involved in the project. Von Neumann, the sole author of the First Draft of the EDVAC, was widely regarded as the brains behind the design. Eckert complained:

我没想到他会公开宣称这是他的。他不仅公开宣称,而且每次这些材料被列为机密,我不被允许在其他地方讲课时,他都会公开宣称。

I didn't know that he was going to sort of claim it out there as his. Not only did he do that, but he did that every time the material was classified and I wasn't allowed to lecture on it elsewhere.

ENIAC 于 1945 年完成,但为时已晚,无法为战争提供任何帮助。这台巨型机器于 1946 年情人节在摩尔学院的新闻发布会上正式亮相。团队成员亚瑟·伯克演示了 ENIAC 的功能。他首先在一分钟内完成了五千个数字的加法运算。然后,伯克解释说,一枚炮弹从炮口飞到目标只需三十秒。相比之下,手动计算弹道则需要三天时间。他告诉观众, ENIAC 开始进行同样的计算。为了营造必要的戏剧效果,房间里的灯被关掉,以便记者们能够更好地观察机器闪烁的灯光。二十秒后——比手榴弹的飞行速度还快——计算完成了。

Completed in 1945, the ENIAC arrived too late to aid the war effort. The giant machine was unveiled to the public on Valentine's Day 1946 at a press conference at the Moore School. A team member, Arthur Burke, gave a demonstration of the ENIAC's capabilities. He began by adding five thousand numbers in one minute. Burke then explained that an artillery shell takes thirty seconds to travel from the gun to its target. By contrast, calculating the trajectory manually took three days. He informed the audience that the ENIAC would now perform the same calculation. With the necessary theatrics, the lights in the room were turned off so that the assembled reporters could better observe the machine's flickering lights. Twenty seconds later - faster than the grenade had to fly - the calculation was complete.

当晚,该项目的领军人物齐聚一堂,共进庆祝晚宴。晚宴专为权贵和电子工程师们准备,ENIAC 的女性程序员却未受邀。ENIAC 的程序员们直到五十年后才获得她们应得的哪怕一丝认可。

That evening, the project's leading figures gathered for a celebratory dinner. The dinner was reserved exclusively for the bigwigs and electrical engineers. The female programmers of ENIAC were not invited. It would be another fifty years before the ENIAC programmers would receive a shred of the recognition they so richly deserved.

第二天早上的头条新闻令人欣喜:

The headlines the next morning were euphoric:

陆军新奇大脑

及其发明者:

电子“大脑”计算机两小时内解开百年难题

NEW ARMY WONDERBRAIN

AND ITS INVENTORS

ELECTRONIC 'BRAIN' COMPUTER CALCULATES 100-YEAR-OLD PROBLEM IN TWO HOURS

1947年,ENIAC被运回其所有者——位于阿伯丁的BRL实验室。它一直使用到1955年一场雷击将其摧毁。莫奇利和埃克特对此感到不满,于1947年从摩尔学院辞职,并成立了自己的计算机公司。这家初出茅庐的公司很快陷入财务困境,并于1950年被雷明顿·兰德公司收购。

The ENIAC was moved to its owner's location, the BRL facility in Aberdeen, in 1947. It remained in use until a lightning strike destroyed it in 1955. Dissatisfied, Mauchly and Eckert resigned from the Moore School in 1947 and formed their own computer company. The fledgling company soon ran into financial trouble and was acquired by Remington Rand in 1950.

埃克特和莫奇利驳回ENIAC专利申请的决定引发了极大的争议。法官的裁决部分基于阿纳塔索夫-贝里计算机(ABC)的早期存在以及莫奇利对此的了解。ABC是由爱荷华州立大学教授约翰·阿塔纳索夫和他的学生克利福德·贝里开发的电子计算机。然而,ABC不可编程,并且缺乏决策能力。以现代标准来看,ABC绝对算不上通用计算机,而是一款专用电子计算器。回想起来,拉森法官的裁决令人难以置信。ENIAC比ABC先进得多,并且包含许多创新功能。

The denial of the patent application for the ENIAC by Eckert and Mauchly was highly controversial. The judge's decision was based in part on the earlier existence, and Mauchly's knowledge, of the Anatasoff-Berry Computer (ABC). Developed by John Atanasoff, a professor at Iowa State University, and his student Clifford Berry, the ABC was electronic. However, the ABC was not programmable and lacked the ability to make decisions. By modern standards, the ABC was certainly not a general-purpose computer. It was a special-purpose electronic calculator. In retrospect, Judge Larson's ruling was unbelievable. The ENIAC was far more advanced than the ABC and contained many innovative features.

冯·诺依曼的论文夺走了莫奇利和埃克特的名声。他们的新公司和专利申请的失败让他们损失惨重。莫奇利在计算机科学领域工作多年后去世。 1980 年。埃克特是两人中较年轻的一个,他在雷明顿兰德公司及其继任者任职,直至 1995 年去世。

Von Neumann's paper robbed Mauchly and Eckert of fame. The failure of their new company and patent application cost them a fortune. After a career in computer science, Mauchly died in 1980. Eckert, the younger of the two, worked at Remington Rand and its successors until his death in 1995.

尽管ENIAC的设计初衷是用于弹道计算,但它进行的首次计算似乎有着更崇高的目的。这些计算是曼哈顿计划的秘密计算。在冯·诺依曼的建议下,一个来自洛斯阿拉莫斯的团队于1945年参观了ENIAC。他们对此印象深刻,并强烈要求ENIAC帮助他们进行氢弹设计所需的计算。他们的请求得到了批准,曼哈顿计划与ENIAC团队之间建立了长期合作关系。这次合作促成了历史上最强大的算法之一的测试。

Although ENIAC was designed for ballistic calculations, it seems that the first calculations performed with it had a higher purpose. They were secret calculations for the Manhattan Project. At the suggestion of von Neumann, a group from Los Alamos visited the ENIAC in 1945. Impressed, they made a strong case for making the ENIAC available to them to help them with the calculations needed for the design of the hydrogen bomb. Their requests were granted, and a long-term relationship was established between the Manhattan Project and the ENIAC team. This collaboration led to the testing of one of the most powerful algorithms in history.

蒙特卡洛

Monte Carlo

斯坦尼斯拉夫·乌拉姆1909年出生于一个富裕的波兰犹太家庭。他学习数学,并在当时波兰城市利沃夫(又名伦贝格,现乌克兰利沃夫)的技术大学获得博士学位。1935年,他在华沙结识了约翰·冯·诺依曼,后者邀请乌拉姆到普林斯顿高等研究院与他共事数月。与冯·诺依曼合作后不久,他便在波士顿的哈佛大学获得教职。1939年,他永久移居美国,险些躲过了欧洲爆发的第二次世界大战。两年后,他加入了美国国籍。乌拉姆以才华横溢的数学家而闻名,并于1943年受邀前往新墨西哥州洛斯阿拉莫斯参与曼哈顿计划。乌拉姆非常欣赏这种充满智慧和合作精神的环境。洛斯阿拉莫斯的同事尼古拉斯·梅特罗波利斯后来这样评价乌拉姆:

Stanislaw Ulam was born in 1909 into a wealthy Polish-Jewish family. He studied mathematics and received his doctorate at the Technical University in the then Polish city of Lwów, also called Lemberg and now Lviv in Ukraine. In 1935 he met John von Neumann in Warsaw, who invited Ulam to work with him for a few months at the IAS in Princeton. Soon after joining von Neumann, he obtained a teaching position at Harvard University, in Boston. He moved permanently to the United States in 1939, narrowly escaping the outbreak of World War II in Europe. Two years later he obtained American citizenship. Ulam forged a reputation as a talented mathematician and in 1943 he was invited to work on the Manhattan Project in Los Alamos, New Mexico. Ulam greatly appreciated this environment of strong minds and a spirit of collaboration. Nicholas Metropolis, a colleague at Los Alamos, later wrote about Ulam:

他性格随和,会很随意地拜访,不拘礼节。

He had an informal disposition, he would drop by casually without the usual formalities.

他更喜欢闲聊,或多或少轻松自在,而不是雄辩。话题包罗万象,从数学、物理、世界时事、本地新闻、赌博到经典名言——有时略显零散,但总能切中要点。他总是能敏锐地捕捉到关键的联系。

He preferred to chat, more or less at ease, rather than to orate. Topics could range from mathematics, physics, world events, local news, gambling, quotations from the classics – all sometimes a bit disjointed but always meaningfully to the point. He had a mind ready to make a crucial connection.

斯坦尼斯瓦夫·乌拉姆(Stanislaw Ulam),蒙特卡洛方法的发明者,约1945年。

Stanislaw Ulam, inventor of the Monte Carlo method, ca. 1945.

原子弹安装完毕后,乌拉姆面临着一个难题:计算中子(原子核中不带电的粒子)穿过绝缘材料的距离。这个问题似乎很难解决。中子的穿透力取决于粒子的轨迹和绝缘材料中原子的排列。想象一下,一个乒乓球被随意地扔向一百万个随机放置的球瓶。这个球平均会飞多远?面对如此多的可能路径,谁能回答这个问题呢?

When the bomb was set up, Ulam was given the problem of calculating the distance that neutrons (uncharged particles in the atomic nucleus) travel through an insulating material. The problem seemed intractable. The penetration of the neutrons depends on the trajectory of the particle and the arrangement of atoms in the insulating material. Imagine a ping-pong ball being thrown casually toward a million randomly placed pins. What distance does the ball travel, on average? With so many possible routes, how could anyone answer that question?

乌拉姆在医院脑溢血康复期间,开始玩“耐心牌”(Patience),也就是后来被称为“坎菲尔德纸牌”(Canfield Solitaire)的变体。这款游戏使用一副52张牌。每次发一张牌,并根据规则和玩家的决定在牌堆之间移动。目标是最终得到四叠牌。每叠必须包含同一花色的所有牌,即黑桃、红心、方块或梅花。

While Ulam was recovering from a brain hemorrhage in the hospital, he began playing patience, the variant that became known as Canfield Solitaire. That game uses a single deck of 52 cards. The cards are dealt one at a time and moved between the piles according to the rules and the player's decisions. The goal is to end up with four piles of cards. Each pile must contain all the cards of a single suit, either spades, hearts, diamonds, or clubs.

规则很简单。当你抽一张牌时,有少量合法行动可供选择。大多数情况下,最佳行动显而易见。

The rules are quite simple. When you draw a card, there are a small number of legal actions to choose from. In most cases, the best action is obvious.

耐心等待可能发牌

POSSIBLE CARD DEALINGS IN PATIENCE

圈出的结果是使用蒙特卡洛方法采样的。

The circled outcomes were sampled using the Monte Carlo method.

乌拉姆想知道自己赢得这场比赛的几率有多大。他的输赢取决于发牌的顺序。有些发牌顺序会导致赢,有些则会导致输。计算概率的一种方法是列出所有可能的发牌顺序,然后找出获胜的概率。

Ulam wondered what his chances were of winning the game. Whether he won or lost depended on the order in which the cards were dealt. Some card sequences lead to winning, others to losing. One way to calculate the chances was to make a list of all possible card sequences and find the percentage that would lead to winning.

由于一副牌有 52 张,所以第一张牌有 52 种可能。然后牌堆里还剩下 51 张牌,所以第二张牌也有 51 种可能。因此,第一张牌和第二张牌的可能组合数为 52 × 51 = 2652。将计算扩展到整副牌,则为 52 × 51 × 50 × 49 × ∙∙∙ × 1。这等于 8 后面跟着 67 位数字。没有人能玩这么多游戏。

Since a deck contains 52 cards, there are 52 possible first cards. Then there are 51 cards left in the deck, so there are 51 possible second cards. Therefore, the number of possible combinations of a first and a second card is 52 × 51 = 2652. Extending the calculation to the entire deck gives 52 × 51 × 50 × 49 × ∙∙∙ × 1. That is equal to an 8 followed by sixty-seven digits. No one could ever play that many games.

乌拉姆想知道他能否简化这个问题。如果他只玩10局呢?然后他可以计算出胜率。这样就能让他大致了解真正的获胜概率。当然,只有10局比赛,你有可能只是碰运气。这会扭曲结果。那么玩100局呢?那么长时间保持好运的可能性就小得多。乌拉姆总结道。他可以通过对足够多的博弈结果进行平均来获得对真实概率的合理估计。关键在于,他不必玩所有可能的游戏。他只需要玩足够多的游戏,就能获得对真实概率的合理估计。

Ulam wondered if he could simplify the problem. What if he played only ten games? He could then calculate the percentage win. That would give him an indication of the true probability of winning. Of course, with only ten games there is the possibility that you just get lucky. That would distort the outcome. What about with a hundred games? Being lucky for that long is less likely. Ulam concludedthat he could obtain a reasonable estimate of the true probability by averaging the outcomes of a sufficiently large number of games. The point was that he did not have to play all the possible games. He only had to play enough games to obtain a reasonable estimate of the true probabilities.

尽管如此,即使玩一千场游戏也需要耗费大量时间。乌拉姆意识到,可以对计算机进行编程,使其能够玩这么多游戏。计算机可以随机“发牌”,并以与乌拉姆相同的方式进行游戏。只要游戏次数足够多,胜率就能更可靠地估计真正的胜率。

Still, even a thousand games would take an enormous amount of time. Ulam realized that a computer could be programmed to play that many games. The computer could be programmed to "deal" the cards randomly and play the same way as Ulam. With enough games, the percentage win would give a much more reliable estimate of the true probability of winning.

综上所述,Ulam算法的工作原理如下:

In summary, Ulam's algorithm works as follows:

将利润计数器重置为零。

Reset the profit counter to zero.

重复以下步骤:

Repeat the following:

拿一副新牌。

Take a new deck of cards.

重复以下步骤:

Repeat the following:

抽取任意一张牌。

Draw any card.

以最佳方式打出牌。

Play the card in the best way.

当牌堆空了时停止重复。

Stop repeating when the deck is empty.

如果比赛获胜,则算一

If the game is won, count one

在利润柜台。

at the profit counter.

玩了很多局之后就不要再重复了。

Stop repeating after a lot of games.

提供比赛获胜的百分比。

Provide the percentage of games won.

乌拉姆认为,该算法的用途远不止纸牌游戏。它也能应用于中子扩散问题。中子轨迹和绝缘原子的位置可以用任意数字表示。对于绝缘材料中任意轨迹和任意原子分布,都可以计算穿透距离。对大量随机试验取平均值,应该可以估算出典型的真实中子穿透距离。

Ulam figured that this algorithm would be useful for more than just card games. It would also be applicable to the neutron diffusion problem. The neutron trajectories and the positions of insulating atoms can be represented by arbitrary numbers. The penetration distance can be calculated for any trajectory and any distribution of atoms in the insulating material. Averaging over a large number of random trials should give an estimate of a typical true neutron penetration distance.

乌拉姆向冯·诺依曼提出了这个想法,并建议用ENIAC进行中子穿透计算。据他的同事尼古拉斯·梅特罗波利斯(Nicholas Metropolis)所述:

Ulam proposed the idea to von Neumann and suggested that the neutron penetration calculations be performed with the ENIAC. According to his colleague Nicholas Metropolis:

冯·诺依曼对这种方法的兴趣具有感染力鼓舞人心。他看似轻松的举止掩盖了他浓厚的兴趣和隐藏已久的急躁动力。

Von Neumann's interest in the method was infectiousand inspiring. His seemingly relaxed demeanor belied his enormous interest and a well-hidden impatient drive.

ENIAC 很快就被部署用于测试乌拉姆的新方法。结果被认为“相当令人满意”——委婉地说。洛斯阿拉莫斯的牌手们将这种新算法称为“蒙特卡罗方法”,以摩纳哥著名的赌场命名。

ENIAC was quickly set up to test Ulam's new method. The results were considered "rather favorable" - to put it politely. The card players at Los Alamos called the new algorithm the Monte Carlo method, after the famous casino in Monaco.

1949年,Metropolis和Ulam发表了第一篇关于蒙特卡洛方法的论文。该方法已成为计算机模拟的标准方法。它使科学家能够通过随机抽取大量案例来确定复杂物理事件的可能结果。如今,蒙特卡洛方法已成为物理、生物、化学、工程、经济学、工商管理和法律等众多领域研究的常规组成部分。

In 1949, Metropolis and Ulam published the first paper on the Monte Carlo method. The method has become a standard ingredient in computer simulation. It allows scientists to determine the likely outcomes of complex physical events by randomly sampling a large number of cases. Today, the Monte Carlo method is a regular part of research in fields as diverse as physics, biology, chemistry, engineering, economics, business administration, and law.

计算机预测

Computer predictions

战后,冯·诺依曼重返普林斯顿高等研究院,重拾学术生涯。在那里,他启动了一项类似EDVAC的新型电子计算机项目。这台名为IAS的计算机,是冯·诺依曼对计算机科学的贡献。这台机器从1952年运行到1958年。更重要的是,冯·诺依曼将IAS计算机的设计方案发送给了多个研究小组和公司。IAS计算机成为了世界各地计算机发展的蓝图。

After the war, von Neumann returned to academic life at the Institute for Advanced Study in Princeton. There he began a project for a new electronic computer along the lines of the EDVAC. The IAS computer, as it became known, would be von Neumann's gift to computer science. The machine ran from 1952 to 1958. More importantly, von Neumann sent the design plans for the IAS machine to a variety of research groups and companies. The IAS machine became the blueprint for computers around the world.

此外,冯·诺依曼还思考了计算机能够执行的任务。或许是受其20世纪30年代流体流动研究的影响,冯·诺依曼似乎注意到了理查森在数值天气预报方面的工作。受此启发,冯·诺依曼获得了美国海军的资助,成立了第一个计算机气象学研究小组。为了启动这项计划,他组织了一次会议,汇集了世界顶尖的气象学研究人员。该小组接受了挑战,制作了第一个由计算机生成的天气预报。

In addition, von Neumann pondered the tasks that computers could perform. Perhaps as a result of his 1930s work on fluid flow, von Neumann seems to have been aware of Richardson's work on numerical weather prediction. Inspired, von Neumann secured a grant from the U.S. Navy to establish the first computer meteorology research group. To jump-start the initiative, he organized a conference to bring together the world's leading meteorology researchers. The group took on the challenge of producing the first weather forecast made by a computer.

数学家约翰·冯·诺依曼和 IAS 计算机,1952 年。

Mathematician John von Neumann and the IAS Computer, 1952.

小组成员朱尔·查尼(Jule Charney)加入了冯·诺依曼在IAS的工作。查尼降低了气体方程的复杂性,使其适合在计算机上执行。当时IAS的计算机尚未完全准备好,因此冯·诺依曼请求在ENIAC上进行计算。

A group member, Jule Charney, joined von Neumann at the IAS. Charney tamed the complexity of the gas equations, making them suitable for execution on a computer. The IAS computer was not yet fully ready, so von Neumann requested computing time on the ENIAC.

1950年3月第一个星期日,五位气象学家抵达阿伯丁的BRL进行预报。气象和编程团队几乎在接下来的33天里每天24小时轮班工作,每班8小时。预报计算了1949年1月和2月期间北美和欧洲四天的天气。由于主要天气系统的存在,这些日期是特意选择的。预报显示了24小时的气压读数。美国气象局提供的数据提供了初始条件,以便对预报结果进行评估。该模型基于一个15乘18个单元的矩形网格,每个单元宽736公里,以一小时为增量。ENIAC的运行速度约为24 小时内,每个预报都需要进行百万次计算——几乎跟不上天气变化的速度。

On the first Sunday in March 1950, five meteorologists arrived at the BRL in Aberdeen to carry out the forecast. Both the meteorological and programming teams worked 24 hours a day, in eight-hour shifts, for almost the entire next thirty-three days. Forecasts were calculated for North America and Europe for four days in January and February 1949. The dates were specially selected because of the presence of major weather systems. The forecasts showed barometer readings for 24 hours. Data supplied by the US Weather Bureau provided the initial conditions so that evaluation of the resulting forecasts was possible. The model was based on a rectangular grid of fifteen by eighteen cells, each 736 kilometres wide, with one-hour increments. The ENIAC performed approximately24 hours required the million calculations for each forecast – barely keeping up with the speed at which the weather was developing.

结果并非一致。一些特征预测准确,但其他一些特征,例如低压区周围涡旋的位置和形状,则存在误差。研究人员将误差归咎于单元尺寸过大和方程的局限性。尽管如此,利用计算机进行数值天气预报的概念已经得到验证。气象学家和程序员只需理清细节即可。

The results were not unanimous. Some features were predicted accurately. Others, such as the position and shape of the eddies around a low-pressure area, were incorrect. The researchers attributed the errors to the large cell size and the limitations of the equations. Nevertheless, the concept of numerical weather prediction with a computer had been proven. The meteorologists and programmers only had to sort out the details.

理查森终于平反了。查尼把1950年ENIAC预测实验的最终论文副本寄给了理查森。这位数值预测的先驱回信祝贺了团队。理查森在一旁谦逊地报告了ENIAC实验的结果:

Richardson was finally rehabilitated. Charney sent a copy of the final paper describing the 1950 ENIAC prediction experiment to Richardson. The pioneer of numerical prediction responded with congratulations to the team. In a self-effacing aside, Richardson reported the outcome of the ENIAC experiments as:

…凭借他自己单一而又相当错误的结果取得了巨大的科学进步。

…enormous scientific progress on [his own] single, and rather erroneous, result.

仅仅两年后,1953 年,理查森去世了。

Barely two years later, in 1953, Richardson died.

约翰·冯·诺依曼在与癌症长期斗争后于1957年去世,享年53岁。诺贝尔奖得主汉斯·贝特指出:

John von Neumann died in 1957, aged 53, after a long battle with cancer. Hans Bethe, a Nobel Prize winner, noted:

我有时会想,像冯·诺依曼这样的大脑是否表明存在一种比人类更优越的物种。

I have sometimes wondered whether a brain like Von Neumann's is not indicative of a species superior to that of humans.

冯·诺依曼的讣告由斯坦尼斯瓦夫·乌拉姆撰写。

Von Neumann's obituary was written by Stanislaw Ulam.

乌拉姆继续在核物理、生物信息学和数学领域做出重要贡献。他曾在多所美国著名大学担任教授,并在暑假期间在洛斯阿拉莫斯工作。乌拉姆于1984年在新墨西哥州圣达菲去世。

Ulam continued to make important contributions to nuclear physics, bioinformatics, and mathematics. He held professorships at a number of prestigious American universities while working in the summers at Los Alamos. Ulam died in Santa Fe, New Mexico, in 1984.

由于算法的改进、计算机性能的提升以及气象站的普及,天气预报的准确性在20世纪50年代和60年代稳步提升。这一切看似取得了不错的进展,直到爱德华·洛伦兹发现理查森方法存在根本性的局限性。

As a result of refinements in algorithms, advances in computer performance, and the proliferation of weather stations, the accuracy of weather forecasting steadily improved during the 1950s and 1960s. This all seemed like good progress until Edward Lorenz encountered a fundamental limitation of Richardson's approach.

混乱

Chaos

爱德华·洛伦兹1917年出生于康涅狄格州。二战期间,他在美国陆军航空兵团担任气象学家,之前学习过数学。之后,他在麻省理工学院(MIT)学习气象学,并成为该学院的教授。1961年,他偶然发现了理查森方法的一个问题。

Edward Lorenz was born in Connecticut in 1917. He studied mathematics before serving as a meteorologist in the U.S. Army Air Corps during World War II. He then studied meteorology at the Massachusetts Institute of Technology (MIT) before becoming a professor there. His discovery of a problem with Richardson's method occurred by chance in 1961.

作为一项研究项目的一部分,洛伦兹在一台小型计算机上进行了一系列天气模拟。这本应是例行公事。但结果却非常奇怪。

As part of a research project, Lorenz ran a series of weather simulations on a small computer. It should have been a routine exercise. But what happened was very strange indeed.

洛伦兹选择重复其中一次模拟的一部分,以便更详细地研究结果。一个小时后,他回到计算机前,将结果与之前的打印输出进行了比较。他惊讶地发现,新的预测结果与旧的完全不同。他自然而然地怀疑原因是计算机真空管故障——这在当时是一个常见问题。在寻求计算机维修之前,他决定逐步检查模拟打印输出的时间。起初,它们是一致的。但过了一段时间,数值开始漂移。随着模拟的进行,差异迅速扩大。每模拟四天,新旧结果之间的差异就会翻一番。到模拟的第二个月末,新旧输出之间不再有任何相似之处。

Lorenz chose to repeat a portion of one of the simulations to study the results in greater detail. When he returned to the computer after an hour, he compared the results with the previous printouts. He was surprised to find that the new predictions were completely different from the old ones. Naturally, he suspected that the cause was a failing vacuum tube in the computer—a common problem at the time. Before calling for computer maintenance, he decided to check the simulation printout time step by time step. At first, they were consistent. But after a while, the values ​​began to drift. The discrepancy grew rapidly as the simulation progressed. The difference between old and new more or less doubled every four simulated days. By the end of the second simulated month, there was no longer any resemblance between the old and new outputs.

洛伦兹得出结论,计算机和程序都运行良好。差异源于模拟输入中一个非常小的差异。在第一次运行中,程序计算的大气状态精确到小数点后六位。在第二次运行中,他只输入了小数点后三位。小数点后六位和小数点后三位之间的差异很小;数值非常接近。输入之间的微小差异通常会导致输出之间的微小差异。然而,事实并非如此。计算导致差异不断扩大,最终导致输出之间出现巨大差异。决定性因素是,洛伦兹意识到他没有在模拟中发现人为错误。模拟精确地模拟了实际发生的现象。

Lorenz concluded that both the computer and the program worked fine. The discrepancy arose from a very small difference in the input of the simulation. In the first run, the program had calculated the state of the atmosphere with six decimal places. In the second run, he had only typed in three decimal places. The difference between six or three decimal places is small; the values ​​are close together. You would expect a small difference between the inputs to lead to a small difference in the outputs. Nothing could be further from the truth. The calculation caused the difference to grow, eventually leading to a large discrepancy between the outputs. The decisive factor is that Lorenz realized that he did not see an artificial error in the simulation. The simulation precisely modeled a phenomenon that actually occurred.

洛伦兹的偶然发现催生了一门新科学。混沌理论由此确立了许多真实物理系统对初始条件高度敏感。微小的变化初始状态下的混沌会导致后续条件的巨大差异。这一概念被概括为一个流行术语“蝴蝶效应”。如果条件合适,巴西一只蝴蝶扇动翅膀,几天后就可能在德克萨斯州引发一场龙卷风。这个例子有些夸张。然而,这一想法已经证明了它的价值。此后,混沌已在许多实际系统中得到确认,包括土星环中小行星的轨道。

A new science sprang from Lorenz's accidental discovery. Chaos theory has since established that many real physical systems are hypersensitive to initial conditions. Small changesin the initial state can lead to large differences in later conditions. The idea was summarized by the popular term "the butterfly effect." If the conditions are right, the flapping of a butterfly's wings in Brazil can be the only thing that causes a tornado to occur in Texas a few days later. That example is an exaggeration. Nevertheless, the idea has proven its worth. Chaos has since been recognized in many real systems, including the orbits of asteroids moving in Saturn's rings.

混沌理论限制了数值天气预报的时间范围。当前天气状况建模中的小错误可能会导致日后出现巨大的预测误差。在爱德华·爱泼斯坦出现之前,精确预测的时间范围似乎是不可侵犯的。

Chaos theory places a limit on the time horizon of numerical weather predictions. Small errors in modeling current conditions can lead to large prediction errors later on. That time horizon for precise predictions seemed inviolable until Edward Epstein came along.

爱泼斯坦1931年出生于布朗克斯。和洛伦兹一样,爱泼斯坦在服役期间接触了气象学。离开美国空军后,他在几所美国大学担任研究员和讲师。作为斯德哥尔摩大学的访问学者,他发表了一篇论文,描述了一种可以减轻洛伦兹蝴蝶效应的算法。爱泼斯坦的想法为延长天气预报的时间范围提供了一种方法。

Epstein was born in the Bronx in 1931. Like Lorenz, Epstein was introduced to meteorology during military service. After leaving the U.S. Air Force, he worked as a researcher and lecturer at several American universities. As a visiting scientist at Stockholm University, he published a paper describing an algorithm that could mitigate Lorenz's butterfly effect. Epstein's idea provided a way to extend the time horizon of weather forecasting.

理查森提出的数值天气预报依赖于一个能够预测天气的单一模拟。该模拟从测量当前条件开始,逐个单元、逐个时间步长地计算天气将如何演变。爱泼斯坦的灵感源于将乌拉姆的蒙特卡罗方法应用于理查森的数值模拟。

Numerically predicting the weather, as proposed by Richardson, depends on a single simulation that predicts the weather. The simulation starts with measurements of the current conditions and, cell by cell, time step by time step, calculates how the weather will evolve. Epstein's inspiration was to apply Ulam's Monte Carlo method to Richardson's numerical simulation.

爱泼斯坦不建议进行单次模拟,而是建议进行多次模拟。每次模拟都从随机扰动的初始条件开始。这些初始条件是通过对观测到的大气条件施加微小的随机变化(称为扰动)而创建的。鉴于测量的局限性,天气预报员无法确切知道任何单元格中的当前天气状况。扰动使预报员可以尝试多种可能的情况。在模拟结束时,对输出取平均值以得出统一的最终预测。平均值基于多种可能性的集合 。也就是说,考虑到所有因素,最有可能的情况。爱泼斯坦的提议可以概括如下:

Instead of a single simulation, Epstein proposed running many simulations. Each simulation starts with randomly perturbed initial conditions. These initial conditions are created by applying small random changes, called perturbations , to the observed atmospheric conditions. Given the limitations of measurements, weather forecasters cannot know exactly what the current weather conditions are in any cell. The perturbations allow forecasters to try out a number of possible scenarios. At the end of the simulations, the output is averaged to yield a unified final forecast. The average is based on an ensemble of possibilities. That is, the most likely scenario, all things considered. Epstein's proposal can be summarized as follows:

利用集合方法对飓风佛罗伦萨(2018 年)的路径进行预测。

Predictions of the path of Hurricane Florence (2018) obtained with the ensemble method.

测量当前的大气状况。

Measure the current atmospheric conditions.

重复以下步骤:

Repeat the following steps:

在当前条件中添加小的随机扰动。

Add small random perturbations to the current conditions.

从这些初始条件开始进行数值预测。

Perform a numerical prediction starting with these initial conditions.

保存结果。

Save the results.

当运行了足够多的模拟后停止迭代。

Stop iterating when enough simulations have been run.

提供平均预测。

Provide the average prediction.

爱泼斯坦算法的一个缺点是需要大量的计算。运行八次蒙特卡罗模拟所需的计算能力是单次预测的八倍。爱泼斯坦的集合方法直到20世纪90年代初才开始投入使用。位于英国雷丁的欧洲中期天气预报中心(ECMRWF)目前的预报基于51个独立的模拟。

A disadvantage of Epstein's algorithm is that it requires a lot of computation. Running eight Monte Carlo simulations requires eight times the computational power of a single forecast. Epstein's ensemble approach only became operational in the early 1990s. The European Centre for Medium-Range Weather Forecasts (ECMRWF) in Reading, UK, now bases its forecasts on 51 unique simulations.

爱德华·洛伦兹因其在混沌理论方面的贡献而荣获一系列科学奖项。爱德华·爱泼斯坦则将整个职业生涯奉献给了气象学和气候建模。他是人为气候变化概念的早期倡导者。

Edward Lorenz would go on to win a long series of scientific awards for his work on chaos theory. Edward Epstein devoted his entire career to meteorology and climate modeling. He was an early advocate of the concept of man-made climate change.

长期预测

Long term forecasts

和ENIAC一样,20世纪50年代的计算机也是价格昂贵、耗电巨大的庞然大物。 1947年晶体管和 1958年集成电路的发明 ,使得计算机的小型化成为可能。

Like the ENIAC, the computers of the 1950s were expensive, power-hungry behemoths. The invention of the transistor and the integrated circuit, in 1947 and 1958 respectively, made the miniaturization of the computer possible.

晶体管是电子电路。它们除了电子之外没有其他运动部件,体积小、功耗低、可靠且速度极快。晶体管组可以连接在一起形成逻辑电路。这些逻辑电路可以互连,形成数据处理单元。

Transistors are electronic circuits. They have no moving parts except electrons, are small and require low power, are reliable and incredibly fast. Groups of transistors can be connected together to form logic circuits. These logic circuits can then be interconnected to form data processing units.

集成电路能够以极低的成本生产大量微型晶体管及其金属互连。每个计算机芯片内部都包含一个集成电路。这些芯片是现代计算机的物理构件。

Integrated circuits allow the production of enormous numbers of tiny transistors, along with their metal interconnections, at incredibly low cost. An integrated circuit is inside every computer chip. These chips are the physical building blocks of modern computers.

多年来,电子工程师们不断改进晶体管设计和集成电路技术。1965年,英特尔创始人之一戈登·摩尔指出,他的工程师团队每18个月就能将单个集成电路上晶体管的数量翻一番。摩尔认为这种趋势在未来没有理由不能持续下去。他的预测被称为摩尔定律,成为了整个行业的路线图。事实证明,摩尔定律是现代最重要的预测之一。半个多世纪以来,这条定律一直有效。

Over the years, electrical engineers have continued to refine transistor design and integrated circuit technology. In 1965, Gordon Moore, one of the founders of Intel, noted that his team of engineers had been able to double the number of transistors fabricated on a single integrated circuit every eighteen months. Moore saw no reason why this trend could not continue into the future. His prediction, known as Moore's Law, became a road map for the industry. Moore's Law has proven to be one of the most important predictions of modern times. The law has held true for more than half a century.

正如摩尔定律所预测的那样,计算机性能呈指数级增长。尽管性能提升,计算机的尺寸、成本和功耗却大幅下降。如今,一块高端计算机芯片包含数百亿个晶体管。摩尔定律正是计算能力飞速发展的驱动力。

In line with Moore's prediction, computer performance has increased exponentially. Even as performance has increased, the size, cost, and power consumption of computers have fallen sharply. A high-end computer chip now contains tens of billions of transistors. Moore's Law is the driving force behind the dizzying rise of computing.

2008年,彼得·林奇和欧文·林奇(都柏林大学学院和IBM爱尔兰公司)在手机上重复了ENIAC最初的预测。他们在现成的诺基亚6300上运行了他们的程序——PHONIAC。ENIAC需要24小时才能做出一个预测。相比之下,诺基亚6300只需不到一秒钟。ENIAC重达27吨,而诺基亚6300仅重91克。这就是摩尔定律的体现。

In 2008, Peter and Owen Lynch (University College Dublin and IBM Ireland) repeated the original ENIAC predictions on a mobile phone. They ran their program – PHONIAC ​​– on an off-the-shelf Nokia 6300 model. The ENIAC took 24 hours to make a single prediction. In contrast, the Nokia 6300 took less than a second. While the ENIAC weighed 27 tons, the Nokia 6300 weighs just 91 grams. That’s Moore’s law in action.

计算机技术的进步使得新算法的开发成为可能。曾经运行时间极其漫长的算法如今已变得习以为常。曾经看似纯理论的算法研究方向如今已变得司空见惯。新型计算机硬件的出现带来了新的应用和对全新算法的需求。尤其值得一提的是,计算机行业的成功也导致从事软件和算法开发的人数大幅增加。

Advances in computer technology have made possible the development of new algorithms. Algorithms that once took an impossibly long time to run are now routine. Directions of algorithmic research that once seemed purely theoretical are now commonplace. The appearance of new computer hardware has led to new applications and the need for brand-new algorithms. Not least, the success of the computer industry has led to a huge increase in the number of people engaged in software and algorithm development.

所以摩尔定律也导致了算法数量的指数增长。

So Moore's law has also led to the exponential growth of the number of algorithms.

 

 

明确的游戏规则使得棋手能够考虑每一步棋对游戏进程的影响。

Clear rules of the game allow a chess player to consider the consequences of a move for the course of the game.

5

5

人工智能正在兴起

Artificial intelligence is emerging

机器不具有思维能力,而只是

按照强加于它的法则行动的自动机。

The machine is not a thinking being, but simply

an automaton acting according to the laws imposed on it.

路易吉·费德里科·梅纳布雷亚和艾达·洛夫莱斯

Luigi Federico Menabrea and Ada Lovelace

分析机草图,1843年

Sketch of the Analytical Engine, 1843

在20世纪40年代和50年代,计算机本质上就是一台高速计算器。由于其高昂的成本和庞大的体积,计算机是一种集中式的共享资源。 大型计算机处理着海量的重复性运算。人类操作员被雇佣来守护这些新奇的机器,将宝贵的计算时间分配给客户。大型计算机在不与用户进行任何交互的情况下,执行着一个又一个海量的数据处理任务。操作员将打印出来的大量数据一摞摞地分发给感激不尽的客户。

In the 1940s and 1950s, the computer was essentially a high-speed calculator. Because of its high cost and size, the computer was a centrally located and shared resource. Mainframe computers processed enormous volumes of repetitive arithmetic. Human operators were employed as gatekeepers for these newfangled contraptions, allocating valuable computing time to customers. Mainframes performed one massive data-processing task after another without any interaction with their users. The resulting voluminous printouts were distributed in stacks by the operators to their grateful customers.

随着工业规模计算的增长,少数有远见的人想知道计算机是否能做更多的事情。那些很少有人意识到计算机本质上是符号操纵器。符号可以表示任何类型的信息。他们进一步认为,如果符号操作得当,计算机可以执行以前需要人类智能才能完成的任务。

Amid the growth of industrial-scale computing, a handful of visionaries wondered if computers could do even more. ThoseFew people realized that computers were essentially symbol manipulators. The symbols could represent any kind of information. They further believed that if the symbols were manipulated properly, a computer could perform tasks that had previously required human intelligence.

比算术更广泛

Broader than arithmetic

1947年,艾伦·图灵离开英国国家物理实验室(NPL),回到剑桥大学休了一年假。离开NPL后,图灵留下了他的心血结晶——自动计算机器(ACE)。ACE原本计划成为英国第一台通用计算机。然而,项目进展并不顺利。这台机器的制造极具挑战性,而且图灵本人也不太容易共事。图灵离开后,研究小组坚持了下来。一个设计简单得多的机器——Pilot ACE——于1950年投入运行。

Alan Turing left the NPL in 1947 and returned to Cambridge University for a one-year sabbatical. With his departure from the NPL, Turing left behind his brainchild, the Automatic Computing Engine (ACE). The ACE was intended to be the UK's first general-purpose computer. However, the project did not go smoothly. The machine was extremely challenging to build. Furthermore, Turing was not easy to work with. In the aftermath of his departure, the research group persevered. A much simpler design, the Pilot ACE, was put into operation in 1950.

那年秋天,团队收到了一个不同寻常的请求。哈罗公学的老师克里斯托弗·斯特雷奇(Christopher Strachey)请求他尝试为 Pilot ACE 编程。斯特雷奇无疑是编程新手,但在 1950 年,几乎所有人都是新手。

That fall, the group received an unusual request. Christopher Strachey, a teacher at Harrow School, asked if he could try his hand at programming for the Pilot ACE. Strachey was undoubtedly a novice when it came to programming, but in 1950, so were almost everyone.

斯特雷奇出生于1916年,出身于一个富裕的知识分子家庭。他毕业于剑桥大学国王学院,获得物理学学位。三年级时,他精神崩溃,后来他的姐姐认为这是斯特雷奇接受同性恋身份的缘故。二战期间,斯特雷奇致力于雷达的研发。之后,他开始在坎特伯雷公学和哈罗公学(英国最高端的寄宿学校之一)任教。

Born in 1916, Strachey was the son of a wealthy, intellectual English family. He graduated from King's College, Cambridge, with a degree in physics. In his third year, he suffered a mental breakdown, which his sister later attributed to Strachey's coming to terms with his homosexuality. During World War II, Strachey worked on the development of radar. He then took a teaching position, first at Canterbury and then at Harrow, one of England's most exclusive boarding schools.

斯特雷奇的申请得到了批准,他利用圣诞假期在国家物理实验室(NPL)待了一天,尽可能多地学习有关这台机器的知识。回到哈罗公学后,他开始为 Pilot ACE 编写程序。由于没有机器可用,斯特雷奇用纸笔编写程序,并通过想象计算机的操作进行测试。大多数初学者都是从简单的编程任务开始的。不知是出于雄心壮志还是出于天真,斯特雷奇开始编写一个玩西洋跳棋(一种国际跳棋)的程序。这当然不是算术练习。下西洋跳棋依赖于逻辑推理和深思熟虑。换句话说,下西洋跳棋需要智慧。

Strachey's request was approved, and he spent a day at the NPL during his Christmas vacation, absorbing as much information about the machine as he could. Back at Harrow, he began writing a program for the Pilot ACE. With no machine at his disposal, Strachey wrote the program using pen and paper, testing it by imagining the computer's actions. Most beginners start with a simple programming task. Whether through ambition or naivety, Strachey began writing a program for playing checkers, a variant of draughts. This was certainly not an arithmetic exercise. Playing checkers relies on logical reasoning and forethought. In other words, playing checkers requires intelligence.

人工智能先驱克里斯托弗·斯特雷奇。

AI pioneer Christopher Strachey.

那年春天,斯特雷奇听说曼彻斯特大学有一台新计算机。这个项目由曾在布莱切利园工作的马克斯·纽曼在战后不久启动。这台“曼彻斯特宝贝”比ACE Pilot更强大,似乎更适合斯特雷奇的工作。斯特雷奇联系了当时已被任命为曼彻斯特计算机实验室副主任的图灵。他们早在国王学院就相识,斯特雷奇设法拿到了一份图灵的编程手册。那年夏天晚些时候,斯特雷奇拜访了图灵,想了解更多信息。

That spring, Strachey got wind of a new computer at the University of Manchester. The project had been started just after the war by Max Newman, who had worked at Bletchley Park. More powerful than the ACE Pilot, the Manchester Baby seemed better suited to Strachey's work. Strachey contacted Turing, who had by then been appointed deputy director of the Manchester Computing Machine Laboratory. They had known each other from their King's College days, and Strachey managed to extract a copy of Turing's programming manual. Later that summer, Strachey visited Turing to find out more.

几个月后,斯特雷奇回来测试他应图灵要求编写的一个程序。一夜之间,斯特雷奇将手写笔记变成了一个包含一千行代码的可运行程序。该程序解决了图灵的问题,并在完成后通过计算机扬声器播放了国歌。这是英国有史以来第一部由计算机播放的音乐。图灵对此印象深刻。显然,斯特雷奇是一位天生的程序员。

A few months later, Strachey returned to test a program he had written at Turing's request. Overnight, Strachey went from handwritten notes to a working program with a thousand lines. The program solved Turing's problem and, upon completion, played the national anthem over the computer's loudspeaker. It was the first music ever played by a computer in England. Turing was impressed. It was clear that Strachey was a born programmer.

斯特雷奇受雇于国家研究与发展公司(NRDC)。NRDC 的使命是将新技术从政府到企业。当时,NRDC 没有太多工作给斯特雷奇,所以他继续编程,开发了一系列项目,其中包括一个写情书的程序。

Strachey was hired by the National Research and Development Corporation (NRDC). The mission of NRDC was to transfernew technology from government to business. At the time, NRDC didn't have much for Strachey to do, so he continued programming, developing, among other things, a program that composes love letters.

斯特雷奇的程序以一封情书模板作为输入,然后从预先存储的列表中随机选择形容词、动词、副词和名词。最终,它写出了这封充满激情的书信:

Strachey's program took a template of a love letter as input and then randomly selected adjectives, verbs, adverbs, and nouns from previously stored lists. The result was the fiery epistle:

亲爱的,

Honey Dear,

我的同情之情美丽地吸引着你

My sympathetic affection beautifully attracts you

深情的热情。你是我挚爱的崇拜:

affectionate enthusiasm. You are my loving adoration:

我屏息的爱慕。我的同胞热切期盼你的热情。我的相思之爱,珍视你的热烈。

my breathless adoration. My fellow feeling breathlessly hopes for your dear eagerness. My lovesick adoration cherishes your avid ardour.

您的渴望

Yours wistfully

MUC[曼彻斯特大学计算机]

MUC [Manchester University Computer]

斯特雷奇把这些情书钉在了实验室的公告板上,同事们听了觉得好笑。虽然斯特雷奇的程序本身很有趣,但它却让我们第一次看到了计算机创造力。

To the amusement of his colleagues, Strachey pinned the love letters to the lab's bulletin board. Although playful in nature, Strachey's program provided the first glimpse of computer creativity.

斯特雷奇最终于 1952 年完成了他的跳棋程序,并在一篇题为“逻辑或非数学程序”的论文中对其进行了描述。

Strachey finally completed his checkers program in 1952, describing it in a paper entitled 'Logical or Non-Mathematical Programmes'.

西洋跳棋是一种双人棋盘游戏,与国际象棋一样,在八乘八的方格棋盘上进行。双方玩家面对面坐下,每人发十二个棋子(西洋跳棋)。一人执白,一人执黑。游戏开始时,棋子被放置在玩家附近三行的黑色方格上。双方轮流移动一个棋子。棋子通常沿对角线向前移动一格。如果另一方的方格没有被占据,棋子可以跳过(吃掉)相邻的对手棋子。一步棋可以完成一系列跳跃。所有被吃掉的对手棋子都会被移除。游戏的目标是将所有对手棋子从游戏区域移除。最初,棋子只能向前移动。当一个棋子到达棋盘的另一侧时,将第二个棋子放在它上面,以此“加冕”,这个“加冕”被称为王。加冕的棋子可以沿对角线向前或向后移动。

Checkers is a two-player board game played on the same eight-by-eight square board as chess. Players sit opposite each other and are each given twelve checkers (the checkers). One player plays white, the other black. To begin, the checkers are placed on the black squares in the three rows near the player. Players take turns moving a single checker. The checkers usually move one square diagonally forward. They can jump over (capture) an adjacent opponent's checker if the square on the other side is unoccupied. A series of jumps can be performed in a single move. All opponent's checkers captured in this way are removed from the board. The object of the game is to remove all of the opponent's checkers from the playing field. Initially, the checkers can only move forward. When a checker reaches the opposite side of the board, it is "crowned" by placing a second checker on top of it, which is then called a king. Crowned checkers may move diagonally forward and backward.

跳棋棋盘上,白棋简单走一步(左),随后跳棋吃掉黑棋(右)。1952年,克里斯托弗·斯特雷奇(Christopher Strachey)完成了一个可以下跳棋的程序。

Checkers boards showing a simple move by White (left) and a later jump that removes a Black checker (right). In 1952 Christopher Strachey completed a program that could play checkers.

跳棋很复杂。没有简单的策略能确保必胜。所有可能的走法都必须通过想象棋局的发展来评估。看似无害的一步走法可能会带来意想不到的后果。

Checkers is complicated. There is no simple strategy that will inevitably lead to a win. Possible moves must be evaluated by imagining how the game will develop. A seemingly harmless move can have unexpected consequences.

Strachey 的算法使用数字来记录棋盘上棋子的位置。轮到他时,算法会检查所有可能的下一步棋(平均十种)。用棋盘游戏的术语来说,一个回合 由两个半步(棋层)组成,每个玩家一步。对于每个可能的下一步棋,算法都会评估对手可能的反应。这个预览过程最多进行三步。预览的结果可以直观地表示为一棵树。每个棋盘位置都是树中的一个节点或分支点。从该位置开始的每种可能的棋层都会产生一个通向下一个棋盘位置的分支。预览越广泛,树的层数就越多。对于预览结束时的节点,算法会计算每个玩家在棋盘上剩余的棋子数量。它会选择树根处的走法,使计算机在预览结束时具有最大的数值优势。

Strachey's algorithm uses numbers to record the position of the checkers on the board. When it is his turn, the algorithm examines all possible next moves (an average of ten). In board game jargon, a turn consists of two half-moves (ply), one for each player. For each possible next ply, the algorithm evaluates the opponent's possible responses. This preview procedure is carried out up to three moves deep. The results of this preview can be visually represented as a tree . Each board position is a node, or branch point, in the tree. Each possible ply from that position produces a branch leading to the next board position. The more extensive the preview, the more layers the tree has. For the nodes at the end of the preview, the algorithm calculates the number of checkers each player still has on the board. It chooses the move at the root of the tree that gives the computer the greatest numerical advantage at the end of the preview.

棋盘预览树的图片草图

PICTURE SKETCH OF THE CHECKERS-PREVIEW TREE

每个节点代表一个棋盘位置,

每个分支代表一步棋。

Each node is a board position.

Each branch is a move.

在费兰蒂马克一号(曼彻斯特马克一号的商业版本)上,每一步棋都需要一到两分钟的计算机时间。尽管如此,斯特雷奇的程序算不上一个相当优秀的棋手。回想起来,该程序的预见深度不足,决策逻辑不够复杂,对局面的评估也不准确。尽管如此,计算机算术的统治地位已被打破。这标志着人工智能的第一个实际应用。

On the Ferranti Mark I, a commercial version of the Manchester Mark I, each move required one to two minutes of computer time. Despite this, Strachey's program was not a significantly good player. In retrospect, the program's depth of foresight was insufficient, its decision-making logic was not sophisticated enough, and its position assessment was inaccurate. Nevertheless, the reign of computer arithmetic had been broken. Here was the first working example of artificial intelligence.

斯特雷奇成为牛津大学首位计算机科学教授。尽管​​斯特雷奇在学术界备受尊敬,但由于不愿发表学术论文,他后期的许多研究成果鲜为人知。1975年,他因短暂患病去世,享年58岁。

Strachey became the first professor of computer science at Oxford University. Unfortunately, although he was well-respected as an academic, much of Strachey's later work remained unknown due to his reluctance to publish academic papers. After a short illness, he died in 1975, aged 58.

棋盘游戏已成为人工智能(AI)的晴雨表,该术语源于英文“ artificial intelligence”(人工智能)。棋盘游戏拥有清晰的目标和规则,易于转化为计算机指令。在任何特定时刻,计算机可用的可能性有限,这使得问题易于解决。与人类对弈是衡量进步的一个易于理解的指标。此外,人类热爱竞争。一台能够击败世界冠军的机器总是能引起公众的兴趣。即使是人工智能研究人员也渴望拥有观众。

Board games have become the barometers of artificial intelligence, referred to as AI after the English term artificial intelligence. Board games have clearly defined goals and rules that are suitable for translation into computer instructions. At any given time, there are a limited number of possibilities available to the computer, and that makes the problem manageable. Playing against humans is an easily understood indicator of progress. Moreover, humans love competition. A machine that could beat the world champion always excites public interest. Even AI researchers yearn for an audience.

人工智能的问题

The problem with AI

“人工智能”的概念由约翰·麦卡锡于1955年在提交给洛克菲勒基金会的一份提案中提出。该提案申请资助一项为期两个月的研究项目,涉及十人,其中包括克劳德·香农和马文·明斯基等杰出人物。美国新罕布什尔州达特茅斯学院数学副教授麦卡锡写道:

The concept of 'artificial intelligence' was introduced in 1955 by John McCarthy in a proposal submitted to the Rockefeller Foundation. The document requested funding for a two-month research project involving ten people, including luminaries such as Claude Shannon and Marvin Minsky. McCarthy, associate professor of mathematics at Dartmouth College in New Hampshire, USA, wrote:

就目前而言

For the present purpose it is

人工智能问题被视为

artificial intelligence problem considered as

制造一台行为良好的机器

making a machine that behaves

以一种变得智能的方式

in a way that would become intelligent

当一个人有这样的行为时就会被调用。

called when a person behaves like this.

这个概念被保留了下来,但麦卡锡的定义却存在问题。

The concept stuck, but McCarthy's definition proved problematic.

智能有很多方面,但让我们考虑一个具体的例子。1940年之前,大多数人会认为下跳棋需要智能。棋手必须了解棋盘位置,并设计出一系列能够获胜的走法。相比之下,大多数人会承认执行算法并不需要智能。循序渐进地执行一个又一个定义明确的步骤是微不足道的。即使是机器也能做到这一点。

There are many aspects of intelligence, but let us consider a specific example. Before 1940, most people would have said that checkers required intelligence. The player must understand board positions and devise a sequence of moves that will lead to a win. In contrast, most people would admit that executing an algorithm does not require intelligence. Slavishly executing one well-defined step after another is trivial. Even a machine can do that.

问题就在这里。当游戏算法未知时,下西洋跳棋需要智力。一旦知道了算法,下西洋跳棋就不再需要智力了。

And therein lies the rub. Checkers requires intelligence when the algorithm for the game is unknown. Once the algorithm is known, playing checkers no longer requires intelligence.

麦卡锡所定义的人工智能始终是一个未解之谜。一旦算法被知晓,这个问题就不再需要智能了。我们认为,智能是为了完成计算机无法处理的智力任务。人工智能就像魔术表演:一旦你掌握了诀窍,魔术就消失了。

AI – as defined by McCarthy – is always the unsolved problem. Once the algorithm is known, the problem no longer requires intelligence. Intelligence, we feel, is for intellectual tasks that computers cannot handle. AI is like magic shows: once you know the trick, the magic is gone.

随着算法和计算机的不断进步,人类智能的边界也不断变化。对于计算器,你可以说算术需要智能。对于斯特雷奇,你可以说玩棋盘游戏需要智能。展望未来,人们或许会好奇算法和智能之间的最终界限究竟在哪里。或许最终会发现,人类智能,从本质上来说,就是一种算法。

As algorithms and computers have improved, the boundary of human intelligence has shifted repeatedly. For calculators, you could have said that arithmetic requires intelligence. For Strachey, you could have said that playing board games requires intelligence. Looking to the future, one might wonder where the ultimate boundary between algorithms and intelligence lies. Perhaps it will turn out that human intelligence, in its entirety, is an algorithm.

麦卡锡对人工智能的定义引发了诸多困惑。外行人通常将人工智能想象成完全成型的,等同于人类智能。实际上,人类智能是多方面的、通用的——多方面的意思是,我们的智能包含许多方面。我们可以学习、记忆、多任务处理、发明、运用经验、想象、感知、抽象等等。人类智能的通用性在于,我们可以执行各种各样的任务。我们可以做饭、辩论、导航、运动、修理损坏的机器等等。然而,要被称为“人工智能”,计算机只需要能够执行一项此前被认为需要人类智能才能完成的任务。计算机只需要能够下跳棋就可以被视为人工智能。与我们类似的智能的正确术语是 人类水平的通用人工智能(HLAGI)。HLAGI 就是我们在科幻电影中看到的那种。实际的科学人工智能与 HLAGI 相去甚远。

McCarthy’s definition of AI has caused much confusion. The layman imagines AI as fully formed, equivalent to human intelligence. In reality, human intelligence is multifaceted and general—multifaceted in the sense that there are many aspects to our intelligence. We can learn, remember, multitask, invent, apply experience, imagine, perceive, abstract, and so on. Human intelligence is general in that we can perform a wide range of tasks. We can cook lunch, we can debate, we can navigate, we can play sports, we can fix broken machines, and so on. However, to be called “artificially intelligent,” a computer need only be able to perform a single task that was previously thought to require human intelligence. A computer need only be able to play checkers to be considered AI. The proper term for intelligence similar to ours is human- level artificial general intelligence (HLAGI). HLAGI is what we see in science fiction movies. Actual scientific AI is a far cry from HLAGI.

麦卡锡定义的一个关键方面是,他从结果的角度来描述人工智能。他并不要求机器以与人类相同的方式解决问题。只要人类和机器产生类似的结果,他就认为人工智能与人类智能同等。对麦卡锡来说,机制并不重要。

A key aspect of McCarthy’s definition was that he described AI in terms of outcome. He did not require machines to solve problems in the same way as humans. As long as humans and machines produce similar outcomes, he considered AI to be an equal of human intelligence. For McCarthy, the mechanism does not matter.

多年来,计算机与人类在解决需要智能的任务方面的区别引发了诸多哲学争论。问题的核心可以用一个问题来最好地表达:“机器能思考吗?”答案当然取决于你对“思考”一词的定义。如果你认为思考是大脑中的生物过程,那么计算机显然无法思考。对大多数人来说,这样的要求似乎极其严格。为什么媒介要定义思考与非思考之间的界限?如果来自外星的外星人来到地球,我们能否认他们思考,因为他们只是硅基生命形式而不是碳基生命形式吗?我不这么认为。

Over the years, the dichotomy between how computers and humans solve tasks that require intelligence has generated much philosophical debate. The crux of the matter can best be expressed in a single question: "Can machines think?" The answer, of course, depends on what you mean by the word "think." If you think of it as a biological process in the brain, then computers clearly cannot think. To most people, such a requirement seems extremely restrictive. Why should the medium define the boundary between thinking and non-thinking? If aliens from another planet arrived on Earth, could we deny that they thought because they were simply silicon-based life forms rather than carbon-based life forms? I don't think so.

大多数人认为,思考的前提是智力加上意识。意识,即自我意识的状态,需要有意识的能够“听到”自己思考的生物。对大多数人来说,意识是思考的核心。到目前为止,计算机显然还没有意识。此外,我们也不知道如何赋予它们意识。思考机器的诞生仍然遥不可及,甚至可能根本不可能实现。

The prerequisites for thinking, according to most people, are intelligence plus consciousness. Consciousness, the state of being self-conscious, requires consciousbeings capable of 'hearing' themselves think. For most people, consciousness is central to thinking. So far, computers are certainly not conscious. Furthermore, we have no idea how to make them conscious. Thinking machines are still a long way off. They may even be impossible.

麦卡锡认为“机器能思考吗?”这个问题无关紧要。艾伦·图灵对此表示赞同:

McCarthy suggested that the question 'Can machines think?' was irrelevant. Alan Turing agreed:

我认为最初的问题“机器能思考吗?”毫无意义,不值得浪费口舌。

I think the original question, "Can machines think?" is too meaningless to waste words on.

尽管如此,我相信到本世纪末,词语的使用和普遍的观点将会发生巨大的变化,你将能够谈论思考的机器,而不会预料到会遭到反驳。

Nevertheless, I believe that by the end of the century the use of words and the general opinion will have changed so much that you will be able to talk about machines that think without expecting to be contradicted.

对于图灵来说,如果机器的行为与人类智能难以区分,我们就可以断定机器能够“思考”。而对于他来说,机器是否真的“思考”这个问题,只有哲学家才感兴趣。

For Turing, if a machine's behavior is indistinguishable from human intelligence, we would conclude that a machine 'thinks'. For him, the question of whether it really 'thinks' or not is of interest only to the philosopher.

相比之下,机器是否“感觉”则意义深远。如果机器拥有意识和情感,那么我们当然对它负有伦理责任。随着科技的进步,这些问题将变得更加重要。

In contrast, whether a machine "feels" or not has far-reaching implications. If the machine has consciousness and emotion, then we certainly have ethical responsibilities toward it. Such questions will become more important as technology advances.

麦卡锡的倡议获得了洛克菲勒基金会的资助。1955年夏天,达特茅斯会议召开。这次会议标志着人工智能作为一个研究领域的开始。

McCarthy's initiative was approved for funding by the Rockefeller Foundation. In the summer of 1955, the Dartmouth Conference began. The meeting heralded the beginning of AI as a field of research.

令许多人失望的是,这次会议变成了一系列漫无目的的活动,人们只是在互相认识。与会者在会议期间四处走动,宣传各自的议程。但很少有人获得新的见解。大多数人认为这次会议收效甚微。回想起来,有一场演讲指明了未来的方向。两位美国科学家,艾伦·纽厄尔和赫伯特·西蒙,发布了一个可以进行代数运算的计算机程序。

To many people's disappointment, the conference turned out to be a meandering series of events where people got to know each other. The participants moved around during the conference and promoted their own agendas. But few gained new insights. Most felt that the conference had yielded little. In retrospect, there was one presentation that showed a signpost to the future. Two American scientists, Allen Newell and Herbert Simon, unveiled a computer program that could perform algebra.

机器推理

Machine reasoning

代数是数学的一个分支,研究包含未知值的方程。这些未知数用字母表示。数学家利用代数规则,尝试重新排列和组合方程,从而确定未知数的值。几千年来,处理方程一直是数学家的专长。这是算盘、计算器和早期计算机程序无法做到的。1946年,ENIAC的共同发明人约翰·莫奇利写道:

Algebra is the branch of mathematics that deals with equations that contain unknown values. These unknowns are denoted by letters. Using algebraic rules, mathematicians can attempt to rearrange and combine equations so that the values ​​of the unknowns can be determined. For thousands of years, manipulating equations was the domain of mathematicians. This was something that abacuses, calculators, and early computer programs could not do. In 1946, John Mauchly, co-inventor of the ENIAC, wrote:

我可以指出,一台计算机

I may point out that a calculating machine

不懂代数,只懂算术。

doesn't know how to do algebra, but only arithmetic.

达特茅斯会议期间,纽厄尔和西蒙正在兰德公司工作。兰德公司总部位于加利福尼亚州圣莫尼卡,如今是一家非营利性研究机构。兰德公司成立于二战后,专门为政府机构和企业提供规划、政策和决策方面的研究。20世纪50年代,兰德公司最重要的客户是美国空军。兰德公司是研究人员的天堂——知识自由、聪明的同事、丰厚的预算,而且没有教学义务。事实上,兰德公司的员工被告知:

At the time of the Dartmouth Conference, Newell and Simon were working at the RAND Corporation. Based in Santa Monica, California, RAND was, as it is today, a nonprofit research institute. Founded after World War II, RAND specialized in research on planning, policy, and decision-making for government agencies and corporations. In the 1950s, RAND's most important customer was the U.S. Air Force. RAND was a paradise for researchers—intellectual freedom, bright colleagues, healthy budgets, and no teaching obligations. In fact, RAND employees were told:

这袋子里装满了钱。请你把它花在空军的最大利益上。

Here's a bag full of money. Go ahead and spend it in the best interest of the Air Force.

西蒙比纽厄尔大11岁,来自密尔沃基。20世纪50年代,他是一位颇有成就的政治学家和经济学家。他曾在匹兹堡的卡内基理工学院(CIT)任教,暑假期间在兰德公司工作。

Simon, eleven years older than Newell, was from Milwaukee. In the 1950s he was an established political scientist and economist. He was on the faculty of the Carnegie Institute of Technology (CIT) in Pittsburgh and worked at RAND during the summers.

纽厄尔在旧金山长大。他获得了斯坦福大学物理学学位,但后来从普林斯顿大学辍学,前往兰德公司工作。

Newell grew up in San Francisco. He received a degree in physics from Stanford University but dropped out of Princeton to work at RAND.

两人在参与旨在提高防空中心组织效率的项目时,也曾涉足计算机领域。兰德公司的计算机“JOHNNIAC”就是基于冯·诺依曼在IAS分发的蓝图而设计的。约翰·冯 纽曼本人是兰德公司的客座演讲嘉宾。然而,麻省理工学院林肯实验室的奥利弗·塞尔弗里奇的演讲却激发了纽曼的想象力。塞尔弗里奇描述了他在图像中识别简单字母(X 和 O)的工作。

The duo dabbled in computers while working on projects aimed at increasing the organizational efficiency of air defense centers. RAND's computer, the JOHNNIAC, was based on von Neumann's blueprint distributed by the IAS. John von Neumann himself was a guest speaker at RAND. However, it was a talk by Oliver Selfridge of MIT Lincoln Labs that captured Newell's imagination. Selfridge described his work on recognizing simple letters (X and O) in images.

纽厄尔后来谈到此事时说:

Newell later said of this:

那场讲座改变了我的人生。我的意思是,那正是我开始研究人工智能的契机。显然——这一切都发生在那个下午。

[The lecture] changed my life. I mean that was the point where I started working on artificial intelligence. Obviously – that all happened that afternoon.

接下来的一年里,纽厄尔和西蒙开发了一款名为“逻辑理论家”(Logic Theorist)的人工智能程序。为了与西蒙在加州理工学院(CIT)的合作更加紧密,纽厄尔从圣莫尼卡搬到了匹兹堡。由于CIT没有电脑,两人在教室里召集了一群学生,让他们模仿机器的行为来测试他们的程序。学生们“演练”程序,大声喊出指令和数据调整。检查完毕后,西蒙和纽厄尔通过电传打字机将程序发送给兰德公司圣莫尼卡分部的克里夫·肖(Cliff Shaw)。肖将程序输入到JOHNNIAC,并将结果发回匹兹堡进行分析。

Over the next year, Newell and Simon developed an AI program called Logic Theorist. Newell moved from Santa Monica to Pittsburgh so he could work more closely with Simon at CIT. Since CIT did not have a computer, the pair tested their program by gathering a group of students in a classroom and asking them to mimic the behavior of the machine. The group "walked" through the programs, shouting out commands and data adjustments. After checking, Simon and Newell sent the program to Cliff Shaw at RAND Santa Monica via teleprinter. Shaw entered the program into JOHNNIAC and sent the results back to Pittsburgh for analysis.

1955年12月15日,团队宣布逻辑理论家正式投入使用。新学期伊始,西蒙得意洋洋地宣布:

On December 15, 1955, the team declared that the Logic Theorist was operational. As the next school term began, Simon triumphantly declared:

圣诞节期间,艾伦·纽厄尔和我

Over Christmas Allen Newell and I had a

思考机器被发明。

thinking machine invented.

逻辑理论家对逻辑方程进行代数运算。逻辑方程使用运算符将​​变量相互关联 。变量用字母表示,其值可以是真或假。最常见的逻辑运算符是:“=”(等于)、“AND”(与)和“OR”(或)。例如,如果我们为变量ABW赋予以下含义:

Logic Theorist performs algebra on logical equations. A logical equation relates variables to each other using operators . Variables are represented by letters and their values ​​can be true or false. The most common logical operators are: '=' (equals), 'AND' (and) and 'OR' (or). For example, if we assign the following meanings to the variables A , B and W :

A =“今天是星期六”

A = 'Today is Saturday'

B =“今天是星期日”

B = 'Today is Sunday'

W =“今天是周末”

W = 'Today is the weekend'

我们能否建立以下等式:

Can we set up the following equation:

W = A异或B

W = A XOR B

这意味着“今天是周末”为真当且仅当“今天是星期六”为真,或者当且仅当“今天是星期日”为真,但 XOR 中的 X 排除了两者都为真的情况。

This implies that 'Today is the weekend' is true iff 'Today is Saturday' is true OR iff 'Today is Sunday' is true, but the X in XOR rules out the case that both are true.

利用代数,可以处理这样的方程式,揭示变量之间的新关系。从一组初始方程式推导出结论的一系列运算称为 证明。 其原理是,如果初始方程式有效,且运算规则正确,则结论也必然有效。初始方程式称为前提,最终判断称为结论。 证明逐步证明在给定前提的情况下结论有效。例如:

Using algebra, such equations can be manipulated to reveal new relationships between variables. The series of operations that leads from an initial set of equations to a conclusion is called a proof. The idea is that if the initial set of equations is valid and the rules for operation are followed correctly, the conclusion must also be valid. The initial equations are called the premises , and the final judgment is called the conclusion. The proof provides step-by-step evidence that the conclusion is valid given the premises. For example:

W = A异或B

W = A XOR B

我们可以证明

We can prove that

A = W且非B

A = W AND NOT B

换句话说,如果“今天是周末”有效且“今天是星期日”无效,则“今天是星期六”必定为真。

In other words, 'Today is Saturday' must be true if 'Today is the weekend' is valid and 'Today is Sunday' is invalid.

人类通过直觉和经验进行证明。逻辑理论家则采用蛮力法。它会对输入语句尝试所有可能的代数运算。然后,它会对得到的等式重复该过程,依此类推。当它找到想要的结论时,搜索就结束了。程序会沿着这条线索回溯,并输出将结论与原始前提联系起来的运算链。该运算链将作为证明展示给用户。

Humans produce proofs through intuition and experience. Logic Theorist takes a brute force approach. It tries all possible algebraic operations on the input statements. It repeats that process for the resulting equations, and so on. When it finds the conclusion it is looking for, the search ends. The program then follows the trail back and produces as output the chain of operations that links the conclusion to the original premises. That chain is shown to the user as a proof.

最终,《逻辑理论家》对伯特兰·罗素和阿尔弗雷德·诺斯·怀特海的经典教科书《数学原理》中五十二个命题中的三十八个给出了逐步证明 。事实上,《逻辑理论家》的其中一个证明甚至比书中的版本更为优雅。

Ultimately, Logic Theorist provided step-by-step proofs for thirty-eight of the fifty-two propositions in Bertrand Russell and Alfred North Whitehead's classic textbook Principia Mathematica . In fact, one of Logic Theorist's proofs is more elegant than the version in that book.

1959年,纽厄尔、肖和西蒙推出了一个新程序——通用问题求解器(General Problem Solver),其方法与逻辑理论家(Logic Theorist)类似。然而,正如其名称所示,这个新程序可以处理更广泛的代数难题,包括几何问题。为了加快搜索速度,通用问题求解器的算法不会执行所有可能的运算,而是优先考虑与所需证明相似的方程式。这意味着探索无用路径的时间更少。当然,这也存在着忽略重要推理路径,导致无法得出所需结论的风险。规则引导式搜索(或启发式搜索)因其速度快而如今已非常普遍。

In 1959, Newell, Shaw, and Simon introduced a new program. The General Problem Solver used an approach similar to that of Logic Theorist. However, as its name suggests, the new program could handle a much wider range of algebraic puzzles, including geometry. To speed up the search, the General Problem Solver algorithm does not perform all possible operations. It prioritizes equations that resemble the desired proof. This means that less time is spent exploring useless routes. Of course, this carries the risk that an important route of reasoning is ignored and the desired conclusion is never reached. Rule-guided, or heuristic, search is now common because of its speed.

纽厄尔、西蒙和肖在推理方面的工作影响深远。一个全新的人工智能领域(符号推理)源于将逻辑语句处理为符号列表的概念。西蒙甚至声称通用问题求解器模仿了人类的推理。人类有时通过反复试验得出形式化的数学证明,这两者之间确实存在相似之处。然而,与通用问题求解器的方法相比,人类的推理似乎更直观,也更不严谨。

The work of Newell, Simon and Shaw on reasoning proved to be very influential. An entirely new field of artificial intelligence (symbolic reasoning) emerged from the concept of processing logical statements as lists of symbols. Simon even went so far as to claim that the General Problem Solver mimicked human reasoning. There are certainly similarities in the way that humans sometimes derive formal mathematical proofs by trial and error. However, human reasoning seems more intuitive and less rigorous than the General Problem Solver approach.

从普林斯顿大学辍学的纽厄尔最终在卡内基梅隆大学(CIT)获得了博士学位。1967年,CIT与梅隆研究所合并,组建了卡内基梅隆大学(CMU)。纽厄尔和西蒙后来在CMU建立了世界领先的人工智能研究团队之一。1975年,他们因在人工智能和认知心理学方面的工作获得了ACM图灵奖。三年后,西蒙因其在微观经济学(他的另一个研究方向)上的贡献获得了诺贝尔经济学奖。纽厄尔和西蒙在匹兹堡度过了余生。纽厄尔于1992年去世,享年65岁,西蒙于2001年去世,享年84岁。

Newell, who had dropped out of Princeton, eventually earned his PhD at CIT. In 1967, CIT merged with the Mellon Institute to form Carnegie Mellon University (CMU). Newell and Simon went on to establish one of the world’s leading AI research groups at CMU. In 1975, they received the ACM Turing Award for their work on AI and cognitive psychology. Three years later, Simon received the Nobel Prize in economics for his contributions to microeconomics, his other research interest. Newell and Simon lived in Pittsburgh for the rest of their lives. Newell died in 1992, aged 65, and Simon in 2001, aged 84.

机器学习

Machine learning

学习能力对人类智能至关重要。相比之下,早期的计算机只能存储和检索数据。学习则完全不同。学习是基于经验改进行为的能力。孩子通过模仿成人和反复尝试来学习走路。最初摇摇晃晃,提高幼儿的协调性和运动能力,直到孩子成为一名敏捷的跑步者。

The ability to learn is crucial to human intelligence. In contrast, early computers could only store and retrieve data. Learning is something completely different. Learning is the ability to improve behavior based on experience. A child learns to walk by imitating adults and by trial and error. InitiallyStaggering, improve the toddler's coordination and locomotion until the child is an agile runner.

1956年2月24日,第一个展示学习能力的程序在公共电视台亮相。该程序由IBM员工亚瑟·塞缪尔(Arthur Samuel)编写。他的程序与斯特雷奇的程序一样,玩棋盘游戏跳棋。电视演示效果惊人,据报道,第二天IBM的股价上涨了15美元。

The first program to demonstrate the ability to learn was unveiled on public television on February 24, 1956. The program was written by IBM employee Arthur Samuel. His program, like Strachey's, played the board game checkers. The television demonstration was so impressive that IBM's stock reportedly rose $15 the next day.

塞缪尔1901年出生于堪萨斯州。他获得了麻省理工学院的电气工程硕士学位,之后在贝尔实验室工作。二战后,他成为伊利诺伊大学的教授。尽管​​学校里没有计算机,塞缪尔还是开始研究一种下西洋跳棋的算法。最终,他完成了这个游戏程序的第一个可运行版本。第一次看到斯特雷奇的论文时,塞缪尔觉得自己的工作成果正从指尖溜走。但仔细研究后,他清楚地意识到斯特雷奇的程序在西洋跳棋方面表现不佳。塞缪尔坚信自己可以做出更好的版本,于是坚持了下来。

Samuel was born in Kansas in 1901. He received a master's degree in electrical engineering from MIT, after which he took a job at Bell Labs. After World War II, he became a professor at the University of Illinois. Although the university did not have a computer, Samuel began working on an algorithm that played checkers. Eventually, he had a working first version of his game-playing program. When he first saw Strachey's paper, Samuel felt that the scoop on his own work was slipping through his fingers. But upon closer inspection, it was clear to him that Strachey's program was a poor checker player. Convinced that he could make a better version, Samuel persevered.

1959年,塞缪尔终于发表了一篇描述他的新跳棋程序的论文。低调的标题——《利用跳棋游戏进行机器学习的一些研究》——揭示了他的想法的重要性。

In 1959, Samuel finally published a paper describing his new checkers program. The understated title—"Some Studies in Machine Learning using the Game of Checkers"—betrayed the importance of his ideas.

与斯特雷奇的算法相比,塞缪尔的算法在评估局面方面更为彻底。这得益于一种巧妙的计分算法。棋盘局面的各种 特征都会得分 。特征是指任何能表明局面强弱的因素。一个特征是双方棋手在棋盘上拥有的棋子数量。另一个特征是加冠棋子的数量。战略要素,例如移动自由度或对棋盘中心的控制,也被视为特征。每个特征都会得分。每个特征的分数乘以权重。将所得值相加,得出该局面的总分。

Samuel’s algorithm is more thorough in assessing positions than Strachey’s. This is achieved by means of a clever scoring algorithm. Points are awarded for various characteristics of the board positions. A characteristic is anything that indicates the strength or weakness of a position. One characteristic is the number of stones the two players have on the board. Another is the number of crowned stones. Strategic elements, such as freedom of movement or dominance over the center of the board, are also considered characteristics. Points are scored for each characteristic. The points for a given characteristic are multiplied by a weight. The resulting values ​​are added together to give an overall score for the position.

权重决定了每个特征的相对重要性。权重可以是正数或负数。正权重表示该特征对计算机玩家有利。负权重表示该特征降低了计算机的获胜几率。权重较大表示该特征对总分影响较大。然而,多个权重较低的特征可能会共同影响总分,从而决定最终决策——走法。

The weight determines the relative importance of each feature. Weights can be positive or negative. A positive weight means that the feature is advantageous to the computer player. A negative weight means that the feature reduces the computer's chance of winning. A large weight means that a feature has a large influence on the total score. However, several features with low weights can together influence the total score and thus determine the final decision, the move.

机器学习的创始人亚瑟·塞缪尔(Arthur Samuel),1956 年。

The founder of machine learning, Arthur Samuel, in 1956.

综上所述,Samuel 的职位评估方法如下:

In summary, Samuel's position evaluation method works as follows:

以棋盘位置作为输入。

Take a board position as input.

将总分设为零。

Set the total score to zero.

对每个属性重复以下步骤:

Repeat the following for each attribute:

测量板上的特征。

Measure the feature on the board.

计算该特征的点数。

Calculate the points for the feature.

将其乘以特征权重。

Multiply that by the feature weight.

将结果添加到总分中。

Add the result to the total score.

一旦所有特征都得到评分,就停止迭代。

Stop iterating once all features have been scored.

提交总成绩。

Submit the total score.

评分机制对 Samuel 的算法至关重要。分数越准确地反映计算机的获胜概率,程序做出的决策就越准确。选择最佳特征进行分析至关重要。但除此之外,选择最佳权重也至关重要。然而,找到权重的最佳值并非易事。

The scoring mechanism is essential to Samuel's algorithm. The more accurately the scores reflect the computer's probability of winning, the better the decisions the program makes. Choosing the best features for the analysis is important. But apart from that, choosing the best weights is essential. Finding the best values ​​for the weights is difficult, however.

塞缪尔设计了一种机器学习算法来确定最优权重。最初,该算法依靠猜测来计算权重。然后,计算机与自己进行了大量对弈。一个程序副本走白棋,另一个走黑棋。随着对弈的进行,算法不断调整权重,使计算出的分数能够更准确地预测对弈结果。如果程序获胜,对决策有积极贡献的权重就会略微增加。同样,有消极贡献的权重就会略微减少。这强化了获胜行为。实际上,它鼓励程序在未来更多地采用这种新的方式进行对弈。如果输掉了一局,情况就会相反。这会阻止程序在后续对弈中继续采用相同的方式。在进行了大量对弈之后,学习算法会对程序的玩法进行微调。

Samuel designed a machine learning algorithm to determine the optimal weights. Initially, the algorithm guessed at the weights. Then, the computer played a large number of games against itself. One copy of the program played white, the other black. As the game progressed, the algorithm adjusted the weights so that the calculated scores predicted the outcome of the game with greater accuracy. If the program won, the weights that contributed positively to the decision were increased slightly. Likewise, the weights that contributed negatively were decreased slightly. This reinforces the winning behavior. In effect, it encourages the program to play more in that new way in the future. If a game is lost, the opposite happens. This discourages the program from playing the same way in subsequent games. After a large number of games, the learning algorithm fine-tunes the program's play.

与手动选择权重相比,Samuel 的算法有两大优势。首先,计算机永远不会忘记——每盘棋都会影响权重。其次,计算机可以与自己对弈的次数远超人类。因此,计算机的学习过程可以获得更多信息。

There are two major advantages to Samuel’s algorithm over choosing the weights manually. First, the computer never forgets – every single game affects the weights. Second, the computer can play many more games against itself than a human can ever play. Therefore, there is much more information available for the learning process.

塞缪尔对机器学习的贡献具有革命性。此前,改变程序的行为需要手动调整一系列命令。然而,塞缪尔的程序所做的决策由权重控制,而权重只是简单的数值。因此,只需改变权重即可改变程序的行为,无需修改程序代码。虽然修改程序代码很困难,但修改几个数值权重却轻而易举。这可以通过算法来实现。这一巧妙的概念使学习的自动化成为可能。

Samuel's development of machine learning was revolutionary. Previously, changing the behavior of a program required manually adjusting a list of commands. However, the decisions made by Samuel's program are governed by weights, which are simple numerical values. As a result, the behavior of the program can be changed by changing the weights. The program code does not have to be changed. While changing the program code is difficult, changing a few numerical weights is a piece of cake. This can be done by an algorithm. This ingenious concept makes the automation of learning possible.

此外,Samuel 还在程序中构建了一个用于选择走法的极小极大算法。该算法执行前瞻过程,创建包含所有可能未来走法的决策树。预览结束时,将计算所有棋盘位置的分数。某些得分最高的棋盘位置不太可能在实际比赛中出现,因为它们是对手极其糟糕的选择的结果。你必须假设双方都尽力了。为了解决这个问题,算法会反向计算棋步树。程序从预览树的叶子节点开始。对于自己的棋步,反向计算算法选择导致最高分数的棋步。对于对手的棋步,程序选择导致最低分数的棋步。在每个决策点,与所选棋步相关的分数都会反馈给前一个节点。当这个反向计算过程到达树的根节点时,程序将执行导致最高反向计算分数的棋步。

In addition, Samuel built a minimax procedure for choosing moves into the program. The algorithm performs a look-ahead procedure to create a decision tree of all possible future moves.The scores are calculated for all board positions at the end of the preview. Some of the highest scoring board positions are unlikely to occur during actual play because they are the result of extremely poor choices by the opponent. You have to assume that both players are doing their best. To account for this, the algorithm back-calculates the tree of moves. The program starts with the leaves of the preview tree. For its own moves, the back-calculating algorithm chooses the move that leads to a maximum score. For the opponent's moves, the program chooses the move that leads to a minimum score. At each decision point, the score associated with the chosen move is fed back to the previous node. When this back-calculating process reaches the root of the tree, the program executes the move that leads to the highest back-calculated score.

minimax 过程函数运行如下:

The minimax procedure function runs as follows:

将可能的移动树作为输入。

Take the tree of possible moves as input.

从最后一级开始。

Start at the very last level.

对每个级别重复以下步骤:

Repeat the following for each level:

对层中的每个节点重复以下步骤:

Repeat the following for each node in the layer:

轮到电脑时,

When it's the computer's turn,

然后选择得分最高的动作,

then select the move that gives the maximum score,

否则,选择得分最低的举动。

otherwise choose the move that gives the minimum score.

将极小极大分数复制到当前节点。

Copy the minimax score to the current node.

一旦探索完该层的所有节点,就停止迭代。

Stop iterating once all nodes in this layer have been explored.

一旦到达树的根部就停止重复。

Stop repeating once the root of the tree is reached.

执行计算出的回球分数最高的举动。

Deliver the move with the maximum calculated return score.

想象一个简单的两层预览。这棵树包含计算机可能的下一步棋步和对手可能的应对。检查树叶节点(第 2 层)的得分,以找出树各部分的最小值。这反映了对手从自身角度做出的最佳棋步选择。这些最小得分被复制到它们上方的节点(第 1 层)。这样,第 1 层的节点上就分别放置了 1、3、7、5 和 6 的得分。现在,算法选择得分最高的棋步。这意味着计算机正在从自身角度选择最佳棋步。因此,7 的值被复制回树的根节点。假设对手是一位优秀的棋手,那么导致得分为 7 的棋局的棋步就是最佳选择。这一步迫使对手在得分为 8、7 和 10 的局面之间做出选择。对手所能做的最好的事情就是接受得分为 7 的局面。

Imagine a simple two-ply preview. The tree contains the computer's possible next moves and the opponent's possible responses. The scores at the leaves of the tree (ply 2) are examined to find the minimum of each part of the tree. This reflects the opponent's choice of the best move from his point of view. These minimum scores are copied to the nodes just above them (ply 1). This places the scores 1, 3, 7, 5, and 6 on the nodes in ply 1. Now the algorithm chooses the move that gives the highest score. This means that the computer is choosing the best move from its point of view. Therefore, the value of 7 is copied back to the root of the tree. The move that leads to the game position with the score of 7 is the best choice, assuming that the opponent is a good player. This move forces the opponent to choose between the positions with scores of 8, 7, and 10. The best the opponent can do is to accept the position with a score of 7.

前瞻性树

FORWARD LOOKING TREE

包含使用 minimax 算法获得的重新计算的分数。

containing the recalculated scores obtained with the minimax algorithm.

为了有效利用可用的计算机时间,Samuel 的程序根据一套规则调整了前瞻性搜索的深度和广度(即他使用了启发式搜索方法)。如果某个局面不稳定,例如在跳跃之前,程序会进一步向前搜索。错误的走法不会被深入研究。以这种方式精简搜索范围可以腾出更多时间来评估更可能发生的情况。为了进一步加快处理速度,Samuel 的程序存储了频繁出现的棋盘局面的极小极大值。这些值在执行过程中无需重新计算,因为只需在表中进行简单检查即可。

To make effective use of the available computer time, Samuel's program adjusted the depth and breadth of the forward-looking search according to a set of rules (i.e., he used a heuristic search method). If a position is unstable, for example just before a jump, the program looks further ahead. Bad moves are not investigated in depth. Pruning the search in this way frees up more time for evaluating more likely scenarios. To further speed up processing, Samuel's program stores the minimax scores for frequently occurring board positions. These scores do not need to be recalculated during execution, because a simple check in the table is sufficient.

1962年,塞缪尔的跳棋程序与盲人跳棋大师罗伯特·尼利对弈。计算机的胜利广受赞誉,但尼利甚至不是他所在州的冠军。又过了三十年(1994年),计算机程序才最终击败了这位世界跳棋冠军。

In 1962, Samuel's checkers program played Robert Nealey, a blind checkers master. The computer's victory was widely applauded, but Nealey was not even the champion in his state. It would take another thirty years (1994) before a computer program finally defeated the world checkers champion.

塞缪尔于1966年从IBM退休,之后成为斯坦福大学教授,专注于研究工作。85岁时,他仍继续编程,但后来因帕金森病被迫退休。塞缪尔于1990年去世。

Samuel retired from IBM in 1966, and then became a professor at Stanford University, working exclusively in research. He continued programming at age 85, but then Parkinson's disease forced him to retire. Samuel died in 1990.

当今最先进的棋盘游戏算法的雏形可以追溯到塞缪尔(Samuel)在20世纪50年代的研究成果。极小极大算法、强化学习以及与自己对抗构成了几乎所有现代人工智能(例如跳棋、国际象棋或围棋)的基础。此外,正如我们将看到的,机器学习已被证明是一种极其有效的方法,可以在各种应用中解决复杂的数据分析问题。

The rudiments of today's most advanced board game playing algorithms can be recognized in the work of Samuel in the 1950s. Minimax, reinforcement learning, and playing against oneself form the basis of virtually all modern artificial intelligence that plays checkers, chess, or Go. Moreover, as we shall see, machine learning has proven to be an incredibly effective way to tackle complex data analysis problems in a huge variety of applications.

人工智能的寒冬

The AI ​​Winters

20 世纪 50 年代末到 60 年代,人们对​​人工智能的期望值极高。在冷战军事资助的推动下,人工智能研究团体蓬勃发展,尤其是在麻省理工学院、卡内基梅隆大学、斯坦福大学和爱丁堡大学。1958 年,纽厄尔和西蒙预测,在短短十年内:

During the late 1950s and 1960s, expectations for AI were sky-high. Buoyed by Cold War military funding, AI research groups flourished, particularly at MIT, CMU, Stanford University, and the University of Edinburgh. In 1958, Newell and Simon predicted that within just a decade:

除非规则禁止数字计算机参加比赛,否则它将成为世界象棋冠军。

[A] digital computer will become world chess champion unless the rules exclude it from the competition.

四年后,信息论的创始人克劳德·香农对着电视镜头冷冷地宣称:

Four years later, Claude Shannon, the founder of information theory, declared coldly to a television camera:

我满怀信心地预计,十年或十五年内,实验室中将会诞生出一些与科幻小说中著名的机器人相差不远的东西。

I confidently expect that within ten or fifteen years something will emerge from the laboratory that is not too far removed from the robots so famous in science fiction.

1968年,麻省理工学院人工智能研究主任马文·明斯基预测:

In 1968, Marvin Minsky, director of AI research at MIT, predicted:

三十年内,我们将拥有与人类智力相当的机器。

Within thirty years we will have machines with intelligence comparable to that of humans.

当然,这些预测都没有实现。

Of course, none of those predictions came true.

为什么这么多杰出的思想家会犯下如此惊人的错误?最简单的答案是傲慢。他们是数学家。对他们来说,数学是智能的巅峰。如果计算机能够进行算术、代数和逻辑运算,那么更普通的智能形式肯定很快就会被击败。然而,他们未能考虑到现实世界的多变性和人脑的复杂性。处理图像、声音和语言远比处理方程式复杂得多。

Why were so many eminent thinkers so spectacularly wrong? The simplest answer is hubris. They were mathematicians. For them, mathematics was the pinnacle of intelligence. If computers could perform arithmetic, algebra, and logic, surely more mundane forms of intelligence would soon be defeated. What they failed to take into account, however, was the variability of the real world and the complexity of the human brain. Processing images, sounds, and language turned out to be far more complicated than dealing with equations.

一系列失败的人工智能项目导致资助机构和政界人士对这类研究的价值产生了质疑。在英国,科学研究委员会委托剑桥大学卢卡斯数学教授詹姆斯·莱特希尔爵士(Charles Babbage 曾担任该职位)对人工智能研究进行审查。他于 1973 年发表的报告措辞严厉:

A spate of failed AI projects led both funding agencies and politicians to question the value of this type of research. In the UK, the Science Research Council commissioned Sir James Lighthill, Lucasian Professor of Mathematics at Cambridge University, the chair previously held by Charles Babbage, to conduct a review of AI research. His report, published in 1973, was damning:

在球场的任何部分都没有

In no part of the field have

迄今为止的伟大发现

the discoveries made so far the great

产生了当时(1960 年左右)所承诺的影响。

had the impact that was promised at the time [around 1960].

英国大幅削减了人工智能研究的资金。与此同时,在越南战争的阴影下,1969年和1973年的《曼斯菲尔德修正案》限制了军事部门对科研的资助。

Funding for AI research was cut back significantly in the UK. Meanwhile, in the shadow of the Vietnam War, the Mansfield Amendments of 1969 and 1973 restricted military funding for scientific research.

一系列“人工智能寒冬”的第一次到来。由于缺乏资源,人工智能研究团体规模缩小,逐渐衰落。

The first of a series of “AI winters” arrived. Deprived of resources, AI research groups shrank and withered.

随着人工智能的低迷,计算机科学转向了更实际的应用。由于计算能力有限,一些科学家转向开发快速算法来解决重要但计算难度高的问题。对速度的追求最终导致了数学领域最大的未解之谜之一。

With AI in the doldrums, computer science turned to more practical applications. Given the limited computing power, some scientists turned to developing fast algorithms to solve important but computationally difficult problems. The quest for speed would lead to one of the greatest unsolved mysteries in mathematics.

 

 

法兰克福、汉堡、柏林、慕尼黑——旅行推销员可以按照多种不同的顺序访问城市。算法可以帮助找到最短路线。

Frankfurt, Hamburg, Berlin, Munich – a traveling salesman can visit cities in many different sequences. Algorithms help find the shortest route.

6

6

大海捞针

Needles in haystacks

Die Handlungsreisende - wie er sein soll und was er zu hat, um Aufträge zu erhalten und eines glücklichen Erfolgs in seinen Geschäften gewiß zu sein - of ainem alten Commis-Voyageur。

Die Handlungsreisende - wie er sein soll und was er zu hat, um Aufträge zu erhalten und eines glücklichen Erfolgs in seinen Geschäften gewiß zu sein - of ainem alten Commis-Voyageur.

成功手册的标题

Title of a manual for the successful

自1832年以来的旅行推销员

traveling salesman from 1832

20世纪70年代,在一场研究算法特性的数学家会议上,数学史上最大的谜团之一被揭开。尽管有人悬赏百万美元以求解答,但这个谜团至今仍未解开。问题的核心在于一个看似无害的问题。

In the 1970s, one of the greatest mysteries of mathematics was revealed at a meeting of mathematicians investigating the properties of algorithms. Despite a million-dollar prize for its solution, the mystery remains unsolved. At the heart of the matter lies a seemingly innocent problem.

旅行商问题

The traveling salesman problem

旅行商问题要求确定穿过一组城市的最短路线。给定城市名称及其之间的距离。所有城市只能访问一次。访问城市的顺序不限,只要旅程的起点和终点都在旅行商的家乡即可。问题在于找到旅行者总距离最短的往返行程。

The traveling salesman problem asks to determine the shortest route through a set of cities. The names of the cities and the distances between them are given. All cities may be visited only once. The cities may be visited in any order, as long as the journey begins and ends in the traveling salesman's hometown. The challenge is to find the round trip in which the traveler travels the shortest total distance.

旅行商问题:

THE TRAVELLING SALESMAN PROBLEM:

找到访问每个城市一次并返回家的最短路线。

find the shortest route that visits each city once and returns home.

旅行商问题最早出现在十九世纪。当时,它主要关注的是往返于欧洲大陆城市之间的商业旅行者的实际需求。后来,威廉·汉密尔顿和托马斯·柯克曼将这个问题重新表述为一个数学玩具。

The traveling salesman problem was first mentioned in the nineteenth century. At that time, it was a practical concern for commercial travelers traveling between the cities of continental Europe. Later, the problem was reformulated as a mathematical toy by William Hamilton and Thomas Kirkman.

假设标题中的旅行推销员住在柏林,他需要前往汉堡、法兰克福和慕尼黑。找到最短路线最简单的方法是进行穷举搜索。这种直接搜索,或者说强力搜索,会计算每个可能的往返行程的长度,然后选择最短的那个。穷举搜索算法如下:

Let us suppose that the traveling salesman of the title lives in Berlin and that he has to visit Hamburg, Frankfurt, and Munich. The easiest way to find the shortest route is by means of an exhaustive search. This direct search, or brute force search, calculates the length of each possible round trip and then chooses the shortest one. An exhaustive search algorithm goes like this:

以城市名称集合作为输入。

Take a collection of city names as input.

如果集合中只有一个城市,

If there is only one city in the collection,

然后提供仅包含该城市的旅游,否则:

then deliver a tour that only includes that city, otherwise:

创建一个空白列表。

Create a blank list.

对集合中的每个城市重复以下步骤:

Repeat the following for each city in the collection:

复制一份没有

Make a copy of the collection without the

选择的城市。

chosen city.

将此算法应用于这个较小的集合。

Apply this algorithm to this smaller set.

将选定的城市放在所有

Place the chosen city at the beginning of all

提供旅游服务。

tours provided.

将旅游行程添加到列表中。

Add the tours to the list.

提交所有找到的旅游路线。

Submit all found tours.

所有可能行程的树状图

TREE DIAGRAM OF ALL POSSIBLE TOURS

所有旅程均在柏林结束(未注明)。

All tours end in Berlin (not indicated).

算法的输入是从除家乡城市之外的所有城市的集合开始的。家乡城市是每次游览的已知起点和终点,因此它不必包含在搜索中。算法根据输入集构建城市访问树。该算法依赖于两种机制。首先,它使用重复——算法逐个选择输入集中的每个城市作为下一个要访问的城市。其次,它使用递归(参见第 1 章)。对于每个城市,算法都会调用一个实例,即其自身的副本。算法的实例是该算法的另一个单独执行,它对其自身的数据进行操作。在这种情况下,每个实例都会在图中生成一个新的子树。访问完每个城市后,输入到算法的下一个实例的城市集就会减少。因此,实例必须处理越来越少的城市,直到集合中只剩下一个。当这种情况发生时,实例以树叶(没有进一步分支的节点)结束,并生成仅包含单个城市的游览。算法的先前实例会获取该输出,并以相反的顺序添加城市。就这样,算法展开,循环往复随着树向上移动而形成。当所有返回树根的往返行程都完成后,算法的原始实例终止,并返回完整的往返行程列表。

Starting with the set of all cities except the home city forms the input of the algorithm. The home city is the known start and end point of each tour, so it does not need to be included in the search. The algorithm constructs a tree of city visits from the input set. The algorithm relies on two mechanisms. First, it uses repetition – the algorithm chooses each city in the input set, one after the other, as the next one to visit. Second, it uses recursion (see Chapter 1 ). For each city, the algorithm calls an instance , a copy of itself. An instance of an algorithm is another, separate execution of the algorithm that operates on its own data. In this case, each instance produces a new subtree in the diagram. After each city has been visited, the set of cities input to the next instance of the algorithm is reduced. Thus, the instances must process fewer and fewer cities until only one remains in the set. When that happens, the instance ends with a tree leaf, a node with no further branches, and produces a tour that contains only a single city. The previous instances of the algorithm take that output and add the cities in reverse order. In this way, the algorithm unfolds, traveling aroundforming as it moves up the tree. When all the round trips back to the root of the tree have been followed, the original instance of the algorithm terminates and the full list of round trips is returned.

在制定旅游清单时,旅游的长度是通过将所有城市之间的距离相加来计算的。

While the list of tours is being formed, the length of the tours is calculated by adding up all the city-to-city distances.

该算法的工作原理可以用动画来演示。算法从根节点开始构建树。从那里开始,它会构建上层路线,逐个城市,直到到达末端的叶子节点。然后,它会返回上一层,构建第二片叶子节点。之后,它会返回两层,添加第三片和第四片叶子节点。算法会不断来回跳跃,直到形成完整的树。最后,算法返回根节点并将其闭合。

The workings of the algorithm can be shown as an animation. The algorithm builds the tree from the root. From there it forms the upper route, one city after the other, until it reaches the leaf at the end. Then it goes back one level and builds a second leaf. Then it goes back two levels to add the third and fourth leaves. The algorithm keeps jumping back and forth until the entire tree is formed. At the end, the algorithm returns to the root and closes it.

在示例中,柏林被选为起始城市,因此将其从输入集 {汉堡、法兰克福、慕尼黑} 中移除。算法的第一个实例依次选择汉堡、法兰克福和慕尼黑作为起始城市。对于每个选择,算法都会创建一个新实例来探索子树。在选择汉堡作为起始城市后,算法的第二个实例从集合 {法兰克福、慕尼黑} 中选择法兰克福。然后,它会创建第三个实例来处理第三个城市:{慕尼黑}。由于只有一个城市:

In the example, Berlin is chosen as the home city and therefore it is removed from the input set of {Hamburg, Frankfurt, Munich}. The first instance of the algorithm chooses Hamburg, Frankfurt, and Munich as the first city in turn. For each of those choices, the algorithm creates a new instance to explore the subtree. After choosing Hamburg as the first city, the second instance of the algorithm chooses Frankfurt from the set {Frankfurt, Munich}. Then it creates a third instance that handles the third city: {Munich}. Since there is only one city:

慕尼黑

Munich

是唯一可能的目的地。然后,调用实体将法兰克福置于其前面,从而产生往返行程:

is provided as the only possible destination. The calling entity then places Frankfurt in front of it, and that produces the round trip:

法兰克福、慕尼黑。

Frankfurt, Munich.

然后,同一机构探索替代分支,从而实现往返:

The same agency then explores the alternative branch, which gives the round trip:

慕尼黑、法兰克福。

Munich, Frankfurt.

这些部分往返行程被返回给调用实体,调用实体对它们进行选择,并给出往返行程:

These partial round trips are returned to the calling entity which places its choice on them, and that gives the round trips:

汉堡、法兰克福、慕尼黑;

Hamburg, Frankfurt, Munich;

汉堡、慕尼黑、法兰克福。

Hamburg, Munich, Frankfurt.

以相同的方式探索从法兰克福和慕尼黑开始的子树。最后,返回完整的往返行程列表,并关闭原始算法实例。

The subtrees starting with Frankfurt and Munich are explored in the same way. Finally, the full list of round trips is returned and the original algorithm instance is closed.

像这样的穷举搜索肯定能找到最短的往返行程。可惜的是,这种蛮力搜索的速度很慢。要想知道它到底有多慢,我们需要考虑树的大小。在本例中,道路地图包含四个城市。这些城市完全连通,每个城市都与其他所有城市直接相连。因此,离开柏林时,有三个可能的第一站。对于每个站点,都有两个可能的下一站城市,因为旅行推销员还不能返回家或出发点。在第一和第二站之后,只剩下一个可能的第三站城市。扩展该式可得出可能的往返行程数为 3 × 2 × 1 = 6,即 3 的阶乘(3!)。

An exhaustive search like this is guaranteed to find the shortest round trip. Unfortunately, this brute force approach is slow. To see how slow it really is, we need to consider the size of the tree. In the example, the road map contains four cities. The cities are fully connected, each city is directly connected to all the others. So, when leaving Berlin, there are three possible first stops. For each of those stops, there are two possible next cities, since the traveling salesman cannot yet return home or to the start. After the first and second stops, there is only one possible third city left. Expanding that gives a number of possible round trips of 3 × 2 × 1 = 6, or 3 factorial (3!).

计算六次往返的路程长度是可以手动完成的。但如果有一百个城市呢?一百个完全互联的城市将需要 99! 次往返,大约是 9 × 10155 9 后面跟着 155 个零)。现代台式计算机根本无法处理这个数字!对于旅行商问题来说,即使在看似中等大小的道路地图上,穷举搜索的速度也出奇地慢。

Calculating the length of six round trips is a manageable manual calculation. But what if there are a hundred cities? A hundred fully interconnected cities would give 99! ​​round trips, which is approximately 9 × 10 155 (a 9 with 155 zeros after it). A modern desktop computer simply cannot handle that! For the traveling salesman problem, exhaustive searching is surprisingly slow, even on apparently modestly sized road maps.

尽管已经找到了更高效的算法,但其中最快的算法也并不比穷举搜索快多少。显著提高搜索速度的唯一方法是接受妥协。你必须接受算法可能无法找到最短路径。到目前为止,最好的快速近似算法也只能保证找到与最小值相差40%以内的路径。当然,妥协和近似并不总是可以接受的。有时,必须找到最短路径。

Although more efficient algorithms have been found, the fastest of them is not much faster than exhaustive search. The only way to significantly increase the speed of search requires accepting a compromise. You have to accept that the algorithm may not find the shortest possible route. So far, the best fast approximation algorithm only guarantees finding a route within 40 percent of the minimum. Of course, compromises and approximations are not always acceptable. Sometimes the shortest possible route must be found.

多年来,研究人员一直在尝试开发程序,用于在真实道路地图中寻找最短路线。在计算机发展的早期(1954 年),已知解的最大旅行商问题仅包含 49 个城市。50 年后,已解决的最大旅行路线涵盖了 24,978 个瑞典市镇。目前的终极挑战是一张包含1,904,711个市镇的世界地图。地图上发现的最短路线长达7,515,772,212公里。这条路线由凯尔德·赫尔斯高于2013年发现,但没有人知道这是否是可能的最短往返路线。

Over the years, researchers have experimented with programs that hunt for the shortest route for real road maps. In the early days of computing (1954), the largest traveling salesman problem with a known solution contained only 49 cities. Fifty years later, the largest solved tour contained 24,978 Swedish municipalities.The current ultimate challenge is a world map with 1,904,711 municipalities. The shortest route found on that map has a length of 7,515,772,212 kilometers. It was found in 2013 by Keld Helsgaun but nobody knows if it is the shortest possible round trip or not.

测量复杂性

Measuring complexity

旅行商问题的关键在于解决该问题所需算法的计算复杂度。计算复杂度指的是执行算法所需的基本运算次数,例如内存调用、加法或乘法。算法所需的运算次数越多,计算所需的运行时间就越长。最能说明问题的一点是,运算次数会随着输入元素数量的增加而增长(见右图)。

The problem with the traveling salesman problem is the computational complexity of the algorithm required to solve it. Computational complexity refers to the number of basic operations – memory calls, additions, or multiplications – required to execute an algorithm. The more operations an algorithm requires, the longer the running time required to compute it. The most telling aspect is how the number of operations grows as the number of elements in the input increases (see the figure on the right).

一个简单的算法具有恒定的复杂度。将一本书放在一堆未排序的小说之上,其计算复杂度仅为一次操作。将这本书添加到书堆中的复杂度是固定的,无论书堆中已有的书有多少本。

A simple algorithm has a constant complexity. Placing a book on top of an unsorted pile of novels has a computational complexity of only one operation. The complexity of adding the book to the pile is fixed, regardless of the number of books already in the pile.

在摆满书籍的书架中查找特定书名需要更多运算。如果书籍未排序,图书管理员可能需要逐一搜索才能找到所需的作品。在书架上放置额外的书籍会使搜索复杂度增加一项运算。换句话说,搜索书名的复杂度与书架上书籍的数量成正比。对于这个问题,计算复杂度 与书籍数量呈线性关系。

Finding a particular title in a bookcase full of books requires more operations. If the books are unsorted, the librarian may have to search through each individual title before finding the desired work. Placing an additional book on the bookcase increases the complexity of the search by one operation. In other words, the complexity of the search for a title grows proportionally with the number of books on the shelves. For this problem, the computational complexity is linear with the number of books.

书籍排序算法则更加复杂。插入排序(参见引言)将书籍逐一整理。将书籍放到书架上需要先查看或将书架上已有的所有书籍移到书架上。因此,插入排序的计算复杂度与书籍数量的平方成正比。这意味着 书籍数量与操作次数呈二次关系。

Algorithms for sorting books are even more complex. Insertion Sort (see Introduction) organizes books one by one. Placing a book on a shelf requires that all the books already there be either looked at or moved to the shelf. As a result, Insertion Sort has a computational complexity that is proportional to the square of the number of books. This gives a quadratic relationship between the number of books and the number of operations.

正如您所料,快速排序(参见简介)的复杂度较低。快速排序根据选定的枢轴字母反复将书籍分配到书堆中。如果书堆包含五本或更少的书籍,则对每个书堆应用插入排序,然后按正确的顺序将书堆移到书架上。平均而言,快速排序的复杂度等于书籍数量乘以书籍数量的对数。由于数量的对数增长速度比数量本身慢,因此快速排序的复杂度低于插入排序。快速排序的平均计算复杂度是拟线性的。

As you might expect, Quicksort (see Introduction) has a lower complexity. Quicksort repeatedly distributes books into stacks based on chosen pivot letters. If the stacks contain five or fewer books, Insertion Sort is applied to each stack and then the stacks are moved to the shelf in the correct order. On average, the complexity of QuickSort is equal to the number of books multiplied by the logarithm of the number of books. Since the logarithm of a quantity grows more slowly than the quantity itself, the complexity of Quicksort is lower than that of Insertion Sort. The average computational complexity of Quicksort is quasilinear.

该图表显示了计算复杂度和输入算法的输入元素数量之间的关系。

Graph showing the relationship between computational complexity and the number of input elements fed to an algorithm.

用于添加、搜索和排序书籍的算法具有所谓的 多项式计算复杂度。多项式就是多项式。多项式时间算法的计算复杂度与输入数量的常数次幂成正比。对于线性算法,该幂为一;对于二次算法,该幂为二。这些多项式时间算法在输入数量非常大的情况下可能会很慢,但它们在现代计算机上仍然可以执行。

Algorithms for adding, searching, and sorting books have what is called polynomial computational complexity. A polynomial is a polynomial. A polynomial time algorithm has a computational complexity that is proportional to the number of inputs raised to a constant power. For linear, that power is one, and for quadratic, it is two. These polynomial time algorithms can be slow for very large numbers of inputs, but they are still mostly executable on modern computers.

更具挑战性的算法是那些具有超多项式计算复杂度的算法。这些方法的复杂度超过了多项式时间。执行超多项式时间算法所需的运算数量会随着以下因素的数量而激增:输入增加。解决旅行商问题的穷举搜索算法具有超多项式时间复杂度。如我们所见,所需的运算次数等于城市数量的阶乘。在行程中添加一个城市,所需的运算次数将乘以地图上已有城市的数量。这种乘法效应导致复杂度随着城市数量的增加而急剧膨胀。

The more challenging algorithms are those with superpolynomial computational complexity. These methods have a complexity that exceeds polynomial time. The number of operations required to execute superpolynomial time algorithms explodes as the number ofinput increases. The exhaustive search algorithm for solving the traveling salesman problem has superpolynomial-time complexity. As we have seen, the number of operations required is equal to the factorial of the number of cities. Adding a single city to the tour multiplies the number of operations required by the number of cities already on the map. This multiplication effect causes an extremely rapid expansion of the complexity as the number of cities grows.

为了降低此类算法的计算复杂度,人们已经做了大量工作。具体可以使用哪些技巧取决于问题的具体情况。有时,可以利用输入数据的结构快速找到显而易见的解或部分解。在其他情况下,使用额外的数据存储可以减少操作次数。类似地,书籍的索引虽然增加了所需的页数,但可以大大减少查找给定关键字所需的时间。

Much work has been done to reduce the computational complexity of such algorithms. The tricks that can be pulled depend on the specifics of the problem. Sometimes the structure of the input data can be used to quickly find obvious solutions or partial solutions. In other cases, the use of additional data storage can reduce the number of operations. Similarly, the index of a book increases the number of pages required, but it greatly reduces the time required to find a given keyword.

显然,每个问题都必然存在一个最快的算法。关键在于找到它。20世纪60年代和70年代,一些理论家开始探索算法复杂度的极限。我们今天对这个主题的了解,很大程度上都源于当时的开发工作。

It is clear that for every problem there must be a fastest algorithm. The trick is to find it. In the 1960s and 1970s, a handful of theorists began to explore the limits of algorithmic complexity. Much of what we know about the subject today comes from that development work.

复杂性类

Complexity classes

计算问题根据已知最快算法的复杂度进行分类(参见下图和右表)。可以用多项式时间算法解决的问题称为P 问题,其中 P 代表多项式时间。P 问题被认为是快速的。例如,排序就是一个 P 问题。

Computational problems are classified according to the complexity of the fastest known algorithm that can solve them (see the figure below and the table on the right). Problems that can be solved by polynomial-time algorithms are referred to as P-problems, where P stands for polynomial time. P-problems are considered to be fast. For example, sorting is a P-problem.

常见的复杂性类别

COMMON COMPLEXITY CLASSES

那些可以用多项式时间算法验证解的问题被称为 NP 问题 (非确定性多项式时间)。解决 NP 问题所需的时间尚未确定。有些问题可以在 P 时间内解决,有些则不能。由于解决问题本身就是验证给定解的一种方式,因此所有 P 问题的集合是 NP 问题集合的子集。

Problems whose solutions can be verified with a polynomial-time algorithm are called NP-problems (nondeterministic polynomial time). The time it takes to solve NP-problems is not defined. Some can be solved in P-time; others cannot. Since solving a problem is a way of verifying a given solution, the set of all P-problems is a subset of the set of NP-problems.

属于 NP 但不属于 P 的问题称为NP|P 问题(NP 减 P)。这类问题需要很长时间才能解决,但一旦知道答案,就能快速验证。数独就是一个 NP|P 问题。

Problems that belong to NP but not to P are called NP|P problems (NP minus P). These problems take a long time to solve, but once the answers are known, they can be checked quickly. Sudoku is an NP|P problem.

数独是一种在 9 × 9 网格上进行的日本数字谜题。谜题开始时,有些格子是空白的,有些格子包含数字。目标是用 1 到 9 之间的数字填充所有空白格子。问题是每个数字每行每列只能出现一次。强力搜索会尝试所有可能的数字位置。因此,这种强力搜索速度很慢。其复杂度是网格大小的超多项式。但是,检查网格的速度非常快。检查者只需检查行和列中是否存在空白格子和重复的数字。因此,检查可以在多项式时间内完成。与其他 NP|P 问题一样,数独的求解速度很慢,但检查速度很快。

Sudoku is a Japanese number puzzle played on a 9 × 9 grid. At the start of the puzzle, some cells are blank and some contain a number. The goal is to fill all blank cells with a number from 1 to 9. The problem is that each number may only appear once per row and once per column. A brute force approach tries all possible number placements. As a result, this brute force search is slow. The complexity is superpolynomial with the grid size. However, checking the grid is very fast. The checker only needs to check the rows and columns for blank cells and duplicate numbers. Therefore, checking can be completed in polynomial time. Like other NP|P problems, Sudoku is slow to solve but fast to check.

最常见的复杂性类别表

TABLE OF THE MOST COMMON COMPLEXITY CLASSES

班级

Class

溶解时间

Dissolution time

控制时间

Control time

P

多项式

Polynomial

多项式

Polynomial

名词短语

NP

未指定

Not specified

多项式

Polynomial

名词|宾语

NP|P

>多项式

>Polynomial

多项式

Polynomial

>NP

>NP

>多项式

>Polynomial

>多项式

>Polynomial

NP完全

NP-complete

最复杂的P

Most complicated P

多项式

Polynomial

NP困难

NP-difficult

将 P 转换为 NP-完全

Convert P to NP-complete

未指定

Not specified

还有大于NP的问题(>NP)。这些问题无法在多项式时间内解决或检验。它们的求解器和检验器需要超多项式时间才能完成。旅行商问题就是其中之一:所需的时间取决于元素或城市数量的阶乘。测试答案是否是最短往返行程的唯一方法是再次运行问题求解算法。检验解法所需的时间与城市数量的阶乘相同。求解和检验速度都较慢的问题称为>NP。

There are also larger-than-NP problems (>NP). These are problems that cannot be solved or checked in polynomial time. Their solvers and checkers need superpolynomial time to do so. The traveling salesman problem is one of them: the time required for this depends on the factorial of the number of elements, or cities. The only way to test whether the answer is the shortest round trip is to run the problem-solving algorithm again. Checking the solution takes just as much time, coupled with the factorial of the number of cities. Problems that are slow to solve and slow to check are called >NP.

1971年,加拿大多伦多大学的斯蒂芬·库克(Stephen Cook)发表了一篇对复杂性产生深远影响的论文。当时库克刚刚被该大学聘用,之前他被加州大学伯克利分校拒之门外。库克的论文揭示了某些类型问题之间的深刻联系。它引出了数学界的一大谜团,即所谓的“P与NP问题”。该问题探讨的是:“能否找到一个多项式时间算法来解决所有NP问题?”

In 1971, Stephen Cook of the University of Toronto in Canada published a paper that would have far-reaching implications for complexity. Cook had just been hired by the university, having been passed over for a position at the University of California, Berkeley. Cook's paper revealed profound connections between certain types of problems. It led to one of the great mysteries in mathematics, the so-called "P versus NP problem," which asks, "Can a polynomial-time algorithm be found that will solve all NP problems?"

这个问题的重要性显而易见。一个能解决所有NP问题的多项式时间算法将彻底改变一系列应用。以前难以解决的问题将得到快速解决。例如,从运输到制造等各个行业都可以推导出更高效的网格。分子相互作用可以预测,从而加速药物和太阳能电池板的设计。

The importance of the question is clear. A polynomial-time algorithm for solving all NP problems would revolutionize a host of applications. Previously intractable problems would be solved rapidly. For example, more efficient grids could be derived within industries ranging from transportation to manufacturing. Molecular interactions could be predicted, accelerating the design of drugs and solar panels.

最难的NP问题被称为NP完全问题。库克证明了,一个用于解决NP完全问题的多项式时间算法可以用来在多项式时间内解决所有NP问题。换句话说,一个用于解决NP完全问题的快速算法,可以进一步将所有NP|P问题转化为P问题。结果就是,集合NP突然等于集合P。

The most difficult NP problems are called NP-complete problems . Cook showed that a polynomial-time algorithm for solving an NP-complete problem could be used to solve all NP problems in polynomial time. In other words, a fast algorithm for solving an NP-complete problem would, by extension, turn all NP|P problems into just P problems. The result would be that the set NP would suddenly equal set P.

此外,Cook 的研究证明了一些 NP 问题可以在多项式时间内转化为 NP 完全问题。这种转化是通过以 NP 完全算法能够完成计算的方式处理 NP 问题的输入来实现的。因此,找到一种快速算法来解决NP完全问题的多项式时间算法可以快速求解这些>NP问题。NP完全问题和可以通过P时间转化为NP完全问题的>NP问题统称为NP难问题 。用于解决NP完全问题的多项式时间算法也可以快速求解所有NP难问题。

Furthermore, Cook's work proved that some >NP-problems can be transformed, in polynomial time, into NP-complete problems. This transformation is achieved by processing the inputs of >NP-problems in such a way that an NP-complete algorithm can complete the computation. Therefore, finding a fast algorithm for solvingof an NP-complete problem lead to fast solvers for those >NP problems. The group of NP-complete problems and >NP problems that are amenable to P-time transformation to NP-complete problems are collectively called the NP-hard problems . A polynomial-time algorithm for solving an NP-complete problem would also lead to fast solvers of all NP-hard problems.

NP完全问题备受推崇。如果能用多项式时间算法解决这类问题,很可能就能赢得菲尔兹奖——数学界的诺贝尔奖。

The NP-complete problems are revered. A polynomial-time algorithm for solving one would probably win the Fields Medal, the mathematical equivalent of the Nobel Prize.

旅行商问题是NP难题。旅行商问题的一个简化版本,即旅行商决策问题,被认为是NP完全问题。该问题提出:“对于给定的路线图,能否找到小于指定目标距离的往返路线?” 检查旅行商问题的解需要解决问题本身(>NP),而检查决策问题的解则很快——只需测量给定往返路线的长度,并将结果与​​指定距离进行比较即可。因此,决策问题的求解速度慢,但检查速度快(NP|P)。NP完全问题包括背包问题、战舰游戏和图着色问题。

The traveling salesman problem is NP-hard. A simplified version of the traveling salesman problem, the traveling salesman decision problem, is known to be NP-complete. That problem asks: 'For a given road map, can a round trip be found that is less than a specified target distance?' Whereas checking a solution to the traveling salesman problem requires resolving the problem (>NP), checking a given solution to the decision problem is fast—simply measure the length of the given round trip and compare the result to the specified distance. Thus, the decision problem is slow to solve but fast to check (NP|P). The set of NP-complete problems includes the knapsack problem, the battleship game, and the graph coloring problem.

2000年,位于马萨诸塞州剑桥市的克莱数学研究所宣布,将为解决七个“千禧难题”的学者设立百万美元奖金。之所以选择这些问题,是因为它们是整个数学领域中最重要的难题之一。“P对NP”问题就是其中之一。该研究所将向任何能够提出解决NP完全问题的多项式时间算法,或提供不存在此类算法的确凿证据的人颁发该奖项。

In the year 2000, the Clay Mathematics Institute in Cambridge, Massachusetts, announced million-dollar prizes for solving seven Millennium Problems. The problems were chosen because they are the most important in all of mathematics. The "P versus NP" problem was one of the seven. The institute offers the prize to anyone who can produce a polynomial-time algorithm for solving an NP-complete problem or a definitive proof that no such algorithm exists.

如今,大多数研究人员认为,P 不等于 NP,而且永远不会。这一结论建立在四十年来寻找能够解决 NP 完全问题的快速算法的失败尝试之上。另一方面,要证明这种算法不存在也已证明困难重重。迄今为止,克莱数学研究所提供的百万美元奖金尚未有人领取。

Most researchers now believe that P is not equal to NP and never will be. That conclusion rests on forty years of failed attempts to find fast algorithms that can solve NP-complete problems. On the other hand, a proof that such an algorithm cannot exist has proven difficult to find. So far, the million-dollar prize offered by the Clay Mathematics Institute has not been claimed.

库克于 1982 年获得 ACM 图灵奖。颁奖典礼上,他因改变“我们对复杂系统的理解”而获奖。‘算了’。事后,加州大学戴维斯分校电气工程与计算机科学名誉教授理查德·坎普惋惜地写道:

Cook received the ACM Turing Award in 1982. At the ceremony, he was honored for transforming "our understanding of the complexity of the' calculate'. Afterwards, Richard Kamp, emeritus professor of electrical engineering and computer science at the University of California, Davis, wrote with regret:

这是我们永远的耻辱,因为我们无法

It is our eternal shame that we are unable

能够说服数学系接受他

were able to persuade the mathematics faculty to accept him

给予永久职位。

to give a permanent position.

乡间小路

Back roads

旅行商问题是众多组合优化问题之一,这类问题要求将多个固定元素以最佳方式组合起来。固定元素是城市之间的距离,“最佳方式”是指最短的往返行程。固定元素可以以任意多种方式排列。目标是找到一种最佳的排列方式。

The traveling salesman problem is one of several combinatorial optimization problems , which require that a number of fixed elements be combined in the best possible way. The fixed elements are the distances between cities, and 'the best possible way' is the shortest round trip. The fixed elements can be arranged in any number of ways. The goal is to find the one, best arrangement.

实际的组合优化问题比比皆是。如何在大型工厂中为员工分配最佳任务?哪个航班时刻表能最大化航空公司的收益?哪辆出租车应该搭载下一位乘客才能实现收益最大化?所有这些问题都需要以最佳方式分配一组固定的资源。

Practical combinatorial optimization problems abound. How do you best allocate tasks to the staff in a large factory? Which flight schedule maximizes revenue for an airline? Which taxi should pick up the next customer to maximize revenue? All of these questions require that a fixed set of resources be allocated in the best possible way.

正如我们所见,暴力搜索算法会尝试所有可能的组合,然后选择最佳组合。1952 年,埃兹格·迪杰斯特拉 (Edsger Dijkstra) 发明了一种快速算法,可以解决世界上最普遍的组合优化问题。他的算法如今已被嵌入数十亿电子设备中。

As we have seen, brute-force search algorithms try all possible combinations and then choose the best one. In 1952, Edsger Dijkstra invented a fast algorithm that solves the most general combinatorial optimization problems in the world. His algorithm is now built into billions of electronic devices.

迪科斯特拉是荷兰第一位职业程序员。1951 年,他在英国学习了编程课程,并获得了阿姆斯特丹数学中心(现称 CWI,即数学与信息中心)的一份计算机程序员的工作。可惜的是,当时该中心还没有计算机。由于计算机时代初期资金匮乏,中心忙于自行研发计算机。迪科斯特拉一边在莱顿大学学习数学和物理,一边在中心兼职。三年后,他觉得自己无法同时从事编程和物理工作。他必须在两者之间做出选择。他热爱编程,但对于一位严肃的年轻科学家来说,编程真的是一个受人尊敬的职业吗?迪科斯特拉拜访了计算机系主任阿德里安·范·维恩加登 (Adriaan van Wijngaarden)。范·维恩加登同意他的观点,认为编程本身还不是一个独立的领域。至少现在还不是。但范·维恩加登自信地预测,计算机不会消失,这仅仅是一个开始。难道迪杰斯特拉就不能成为那些把编程变成受人尊敬的职业的人之一吗?一个小时后,当他离开范·维恩加登的办公室时,迪杰斯特拉的人生轨迹已经确定。他尽快完成了物理学位。

Dijkstra was the first professional programmer in the Netherlands. He had taken a programming course in England in 1951 and was offered a job as a computer programmer at the Mathematical Centre in Amsterdam, now called CWI (Centrum Wiskunde & Informatica). Unfortunately, the Centre did not yet have any computers. Due to a lack of funding in those early days of the computer age, the Centre was busy building one itself. Dijkstra worked part-time at the Centre while studying mathematics and physics at Leiden University. After three years, he felt that he could not do both programming and physics. He had to choose, one or the other. He loved programming, but was programming a respectable profession for a serious young scientist? Dijkstra went to see Adriaan van Wijngaarden, the director of the Computing Department. Van Wijngaarden agreed with him that programming was not yet a field in itself. Not yet. But Van Wijngaarden confidently predicted that computers would not go away and that this was only the beginning. Couldn't Dijkstra be one of those who turned programming into a respectable profession? By the time he left Van Wijngaarden's office, an hour later, Dijkstra's life path was set. He finished his physics degree as quickly as he could.

艾兹格·迪杰斯特拉 (Edsger Dijkstra),最短路径算法的发明者,2002 年。

Edsger Dijkstra, inventor of the shortest path algorithm, 2002.

千禧年大奖七大难题中,目前已有一题得到解决,但其余六题可能仍需很长时间才能解决。

One of the seven Millennium Prize Problems has now been solved, but the other six may still take a long time to solve.

一年后,迪杰斯特拉又陷入了困境。中心即将接待几位重要嘉宾。此次访问的亮点是中心那台已经投入使用的计算机。迪杰斯特拉被要求演示这台机器的功能。由于嘉宾们对计算机知之甚少,迪杰斯特拉决定演示应该侧重于实际应用。他萌生了编写一个程序的想法,该程序可以找到荷兰两座城市之间最短的高速公路路线。尽管他对这个想法很满意,但有一个问题:当时还没有快速算法可以找到两座城市之间最短的路线。

A year later, Dijkstra found himself in another difficult position. The Center was to receive a number of important guests. The highlight of the visit was the Center's now working computer. Dijkstra was asked to provide a demonstration of the machine's capabilities. Since the guests knew little about computers, Dijkstra decided that the demonstration should focus on a practical application. He came up with the idea of ​​writing a program that could find the shortest highway route between two Dutch cities. Although he was satisfied with the concept, there was one problem. There was no fast algorithm that could find the fastest route between two cities.

一天早上,他和未婚妻逛街时,在一家咖啡馆停下来休息。在露台上喝咖啡时,迪杰斯特拉在二十分钟内想出了一个算法,可以找到最高效的路线。他花了三年时间才把它出版。当时,这似乎并不那么重要。

One morning while he was shopping with his fiancée, they stopped at a café for a break. While sipping coffee on the terrace, Dijkstra came up with an algorithm in twenty minutes that would find the most efficientroute. It would be three years before he got around to publishing it. It didn't seem all that important at the time.

迪杰斯特拉算法类似于玩棋盘游戏。它通过在地图上的城市之间移动棋子来寻找最短路线。随着棋子在地图上移动,城市会收到一条记录,记录其所走的路线以及距离起点的累计距离。如果棋子离开某个城市,该城市的名称就会从待访问城市列表中删除,这样棋子就无法返回该城市。

Dijkstra's algorithm is akin to playing a board game. It finds the shortest route by moving a pawn between cities on a map. As the pawn moves across the map, the cities receive a note of the route taken and the accumulated distance from the starting point. If the pawn leaves a city, the name of the city is deleted from a list of cities to visit, so that the pawn cannot return there.

首先,将棋子放置在起始城市。记录城市名称和距离零点。现在考虑每个直接连接的城市。计算从起始点到这些城市的行进距离。计算方法是将棋子旁边的数字加上棋子到直接连接城市的连线长度。如果该城市已有的距离记录小于计算值,则保留现有记录。如果新计算的值小于记录的距离,则替换该记录。将新的距离记录到所走的路线上。所走的路线是棋子旁边的城市列表,后面是新城市。完成所有直接连接城市的这些步骤后,棋子将移动到记录距离最短且尚未访问过的城市。重复该过程——检查并刷新直接连接的城市,移动棋子——直到棋子到达所需的目的地。

To begin, the pawn is placed on the starting city. The name of the city and the distance zero are noted. Each directly connected city is now considered. The distance traveled from the starting point to those cities is calculated. This is calculated by adding the number next to the pawn and the length of the link from the pawn to the directly connected city. If the city already has a distance record that is less than the calculated value, the existing record is left unchanged. If the newly calculated value is less than the recorded distance, the record is replaced. The new distance is noted to the route taken. The route taken is the list of cities next to the pawn, followed by the new city. Once these steps have been performed for all directly connected cities, the pawn is moved to the city with the least recorded distance that has not yet been visited. The process – check and refresh the directly connected cities, move the pawn – is repeated until the pawn arrives at the desired destination.

想象一下迪杰斯特拉算法在荷兰公路地图上的应用。假设起点是阿姆斯特丹,终点是埃因霍温。埃因霍温的首都标注如下:

Imagine Dijkstra's algorithm on a Dutch road map. And suppose the starting point is Amsterdam and the destination Eindhoven. The capital is noted as:

阿姆斯特丹 0.

Amsterdam 0.

海牙和乌得勒支与阿姆斯特丹直接相连,因此它们都收到了一条通知,内容如下:

The Hague and Utrecht are directly connected to Amsterdam so they both get a note, with:

阿姆斯特丹 – 海牙 60;

Amsterdam – The Hague 60;

阿姆斯特丹 – 乌得勒支 50.

Amsterdam – Utrecht 50.

最短路径问题

THE SHORTEST PATH PROBLEM

需要找到两座城市之间的最短路线。道路地图显示了荷兰主要城市之间的距离(以公里为单位)。

requires finding the shortest route between two cities. The road map shows the distances between major Dutch cities in kilometers.

到乌得勒支的总距离最短,所以棋子被移到那里。然后考虑与乌得勒支直接相连的城市。因此,蒂尔堡和鹿特丹的标记如下:

The total distance to Utrecht is the least, so the pawn is moved there. The cities directly connected to Utrecht are then considered. That is why Tilburg and Rotterdam get a notation with:

阿姆斯特丹 – 乌得勒支 – 蒂尔堡 50 + 80 = 130

Amsterdam – Utrecht – Tilburg 50 + 80 = 130

阿姆斯特丹 – 乌得勒支 – 鹿特丹 50 + 60 = 110。

Amsterdam – Utrecht – Rotterdam 50 + 60 = 110.

海牙和阿姆斯特丹将不会更新,因为从阿姆斯特丹经乌得勒支到这两个地方的距离(分别为 90 英里和 100 英里)大于已经建立的航线(60 英里和 0 英里)。

The Hague and Amsterdam will not be refreshed, as the distances to them from Amsterdam via Utrecht (90 and 100 respectively) are greater than the already established routes (60 and 0).

棋子被移至海牙,这是累计距离最短(60)且尚未被访问过的城市。从阿姆斯特丹到鹿特丹的路程比之前途经乌得勒支的路程要短。因此,鹿特丹的更新内容为:

The pawn is moved to The Hague, the city with the shortest accumulated distance (60) that has not yet been visited. Going from Amsterdam to Rotterdam is a shorter journey than the previous journey via Utrecht. Therefore, Rotterdam is refreshed with:

阿姆斯特丹 – 海牙 – 鹿特丹 60 + 30 = 90。

Amsterdam – The Hague – Rotterdam 60 + 30 = 90.

棋子现在移至鹿特丹。它与最终目的地埃因霍温直接相连,并且现在刷新了:

The pawn is now moved to Rotterdam. This is directly connected to the final destination Eindhoven, and is now refreshed with:

阿姆斯特丹 – 海牙 – 鹿特丹 – 埃因霍温

Amsterdam – The Hague – Rotterdam – Eindhoven

90 + 110 = 200。

90 + 110 = 200.

前往蒂尔堡的航线(经鹿特丹 170 公里)比已经公布的航线(经乌得勒支 130 公里)更长,因此蒂尔堡没有更新。

The route to Tilburg is longer (170 via Rotterdam) than the already posted listing (130 via Utrecht), so Tilburg is not refreshed.

尚未访问且累计距离最小的城市是蒂尔堡,因此棋子移至那里。经蒂尔堡到埃因霍温的总距离为 165 英里,小于当前标记(经鹿特丹到埃因霍温的距离为 200 英里)。因此,埃因霍温的标记将被替换为:

The city not yet visited with the smallest cumulative distance is Tilburg, and so the pawn is moved there. The total distance to Eindhoven via Tilburg is 165, which is smaller than the current notation (200 via Rotterdam). As a result, the notation at Eindhoven is replaced by:

阿姆斯特丹 – 乌得勒支 – 蒂尔堡 – 埃因霍温 165。

Amsterdam – Utrecht – Tilburg – Eindhoven 165.

兵移至埃因霍温,算法完成。最短路线为阿姆斯特丹 - 乌得勒支 - 蒂尔堡 - 埃因霍温,总距离为 165 公里。

The pawn is moved to Eindhoven and the algorithm is completed. The shortest route is Amsterdam – Utrecht – Tilburg – Eindhoven with a total distance of 165.

用时间代替距离可以让 Dijkstra 算法找到最快的路线而不是最短的路线。

Replacing distance with time allows Dijkstra's algorithm to find the fastest route instead of the shortest route.

Dijkstra 算法之所以重要,有两个原因。首先,它保证找到最短路径。其次,该算法速度很快。它会在搜索过程中不断修剪,避免糟糕的解决方案,并将所有精力集中在最佳方案上。第三,路径规划问题无处不在。世界上的每个人和每辆车都需要导航。

Dijkstra's algorithm is important for two reasons. First, it is guaranteed to find the shortest route. Second, the algorithm is fast. It prune the search as it goes, avoiding bad solutions and concentrating all efforts on the good ones. Third, routing problems occur everywhere. Every person and vehicle in the world needs to navigate.

迪杰斯特拉算法在计算机界广为流传。1968年,三位在加州斯坦福研究所(SRI)工作的研究人员对该算法进行了扩展。这三位研究人员是开发机器人Shakey的团队成员。Shakey是第一个具有推理能力的通用移动机器人。以今天的标准来看,它笨重得像个大盒子,里面装着一台装在动力轮上的小型计算机。尖尖的金属“头”支撑着一个大型摄像机和一个超声波测距仪。现在看来,这似乎有些荒谬,但《生活》杂志甚至称Shakey为“第一个电子人”。

Dijkstra's algorithm became popular in computer circles. In 1968, it was extended by three researchers working in California at Stanford Research Institute (SRI). The researchers were part of the team that built Shakey the Robot. Shakey was the first general-purpose mobile robot with reasoning capabilities. He was clumsy by today's standards, essentially a large box with a small computer mounted on powered wheels. The pointed metal "head" supported a large video camera and an ultrasonic rangefinder. It seems ridiculous now, but Life magazine went so far as to call Shakey the "first electronic person."

因为Shakey是移动的,所以他需要能够导航。在开发团队构建该功能时,他们发现了Dijkstra算法的低效之处。该算法有时会浪费时间,将棋子移动到远离最终目的地的城市。这些城市看起来很有希望,因为它们距离标记的城市很近。带着棋子。然而,它们引导的方向错误,最终被淘汰。为了克服这个缺陷,Peter Hart、Nils Nilsson 和 Bertram Raphael 提出了 A* 算法,简称 A-star 算法。A* 算法使用改进的距离度量。在 Dijkstra 的原始算法中,度量是行进的距离。在 A* 算法中,度量是迄今为止行进的距离加上从当前城市到最终目的地的直线距离。Dijkstra 算法只考虑迄今为止的路线,而 A* 算法会估算从起点到终点的完整路线长度。结果是,A* 算法不太可能访问棋子距离目的地较远的城市。

Because Shakey was mobile, he needed to be able to navigate. While the development team was building that functionality, they discovered an inefficiency in Dijkstra’s algorithm. The algorithm would sometimes waste time by moving the pawn to cities that led away from the final destination. Those cities seemed promising because they had a short distance to the city markedwith the pawn. However, they lead in the wrong direction and are eventually eliminated. To overcome this deficiency, Peter Hart, Nils Nilsson, and Bertram Raphael proposed the A* algorithm, pronounced A-star algorithm. A* uses a modified distance metric. In Dijkstra's original algorithm, the metric is the distance traveled. In A*, the metric is the distance traveled so far plus the straight-line distance from the current city to the final destination. Whereas Dijkstra's algorithm only considers the route so far, A* estimates the length of the complete route, from start to finish. The result is that A* is less likely to visit cities that place the pawn farther from the destination.

如今,从卫星导航到智能手机,地球上的每个导航应用都使用了 A* 算法的变体。为了提高精度,城市已被十字路口取代,但其原理保持不变。正如我们将看到的,Dijkstra 算法的衍生算法现在用于在互联网上路由数据。

Today, variants of A* are used in every navigation app on the planet, from satellite navigation to smartphones. For greater precision, cities have been replaced by intersections, but the principle remains the same. As we shall see, derivatives of Dijkstra's algorithm are now used to route data across the Internet.

迪杰斯特拉兑现了范·维恩加登的预言,为计算机科学这个新兴领域做出了一系列重要贡献。其中最引人注目的是他设计的分布式计算算法,这种算法可以让多台计算机协同工作,解决计算极其复杂的问题。为了表彰他的贡献,迪杰斯特拉于1971年获得了ACM图灵奖。

In fulfillment of Van Wijngaarden's prophecy, Dijkstra made a range of important contributions to the young, emerging field that became computer science. Most notable are the algorithms he devised for distributed computing, in which multiple computers work together to solve computationally very complex problems. In recognition of his contributions, Dijkstra received the ACM Turing Award in 1971.

稳定的婚姻

Stable marriages

路线图并非组合优化问题的唯一来源。匹配问题涉及以最佳方式将对象配对。一个经典的匹配问题是将有希望入学的学生与可用的名额进行匹配。其挑战在于以公平的方式将高中毕业生分配到各个项目中,并尽可能满足尽可能多的学生和教师的需求。与其他组合优化问题一样,随着对象数量的增加,匹配也会变得更加困难。即使学生人数有限,快速算法也至关重要。

Road maps are not the only source of combinatorial optimization problems. Matching problems involve pairing objects in the best possible way. A classic matching problem is matching hopeful enrollees to available spots. The challenge is to assign high school graduates to programs in a way that is both fair and satisfies as many students and faculty as possible. As with other combinatorial optimization problems, matching becomes more difficult as the number of objects increases. Fast algorithms are essential, even for limited student numbers.

关于匹配的开创性论文由大卫·盖尔和劳埃德·沙普利于1962年发表。两人在新泽西州普林斯顿大学攻读数学博士学位时结为好友。之后

The groundbreaking paper on matching was published in 1962 by David Gale and Lloyd Shapley. The two became friends at Princeton University, in New Jersey, where they were both PhD students in mathematics. After

婚姻偏好表

TABLE OF MARRIAGE PREFERENCES

离开普林斯顿大学后,盖尔去了罗德岛的布朗大学,而沙普利则去了兰德公司。盖尔和沙普利的文章探讨了如何为渴望结婚的单身人士牵线搭桥这个由来已久的问题。

After leaving Princeton, Gale went to Brown University, Rhode Island, while Shapley went to the Rand Corporation. Gale and Shapley's article tackled the age-old problem of matching marriage-eager singles for marriage.

稳定匹配问题 (Stable Matching Problem)旨在为婚姻匹配男女。首先,女性根据自己的偏好(第一、第二、第三等)对所有男性进行排序,反之,男性则对女性进行排序。目标是以稳定的方式匹配参与者,使婚姻集合保持稳定。如果不存在任何男性或女性彼此的偏好超过其丈夫,则该集合被认为是稳定的。这种情况可能导致离婚。

The Stable Matching Problem attempts to match men and women for marriage. At the beginning, women rank all men according to their own preferences (1st, 2nd, 3rd, etc.) and, conversely, men rank women. The goal is to match participants in such a way that the set of marriages is stable. The set is considered stable if there are no men or women who prefer each other more than their husbands. Such a circumstance could lead to divorce.

Gale-Shapley 的论文提出了一个非常简单的算法来解决稳定婚姻问题。事实上,由于它过于简单,作者们很难将其发表。在论文中,Gale 和 Shapley 以稳定婚姻问题为例,阐述了现实世界中各种互惠匹配问题。互惠意味着双方都表达了偏好,而不仅仅是一方。Gale-Shapley 算法迅速成为标准的互惠匹配方法。它至今仍在各种应用中使用,例如为危重病人匹配器官捐献者。

The Gale-Shapley paper proposed a remarkably simple algorithm to solve the stable marriage problem. In fact, it was so simple that the authors had a hard time getting it published. In the paper, Gale and Shapley used the stable marriage problem as an example for a variety of real-world reciprocal matching problems. Reciprocal means that both parties express a preference, not just one party. The Gale-Shapley algorithm quickly became the standard reciprocal matching method. It is still used in a wide variety of applications, such as matching critically ill patients with organ donors.

Gale-Shapley 算法通过多轮配对,为男女配对。每轮中,所有未配对的男性都会向对方求婚。(为简单起见,本文假设所有参与者均为异性恋,且求婚者均为男性。)(事实上​​,求婚也可以由女性提出——这对算法没有影响。)每个未婚男性向他最喜欢的并且之前没有拒绝过他的女人求婚。如果接受求婚的女性没有订婚,她会自动接受求婚。如果她已经订婚,她会分别考虑她对新追求者和现任未婚夫的喜好。如果她更喜欢她的新追求者,她会抛弃她的未婚夫并与她的新欢订婚。如果她更喜欢她现任的未婚夫,她会忽略潜在入侵者的追求。一旦她做出决定,算法就会转向下一个未婚男性。一旦所有未婚男性都求婚了,算法就会进入下一轮。在这个阶段,被拒绝的男性未婚夫可以再次向其他人求婚。当所有参与者都有对象结婚时,算法结束。

The Gale-Shapley algorithm pairs men and women over multiple rounds. In each round, all unpaired men propose marriage. (For simplicity, the article assumes that participants are all heterosexual and that the proposals are made by men.)(In fact, the proposals could also be made by the women – it makes no difference to the algorithm.) Each unmarried man proposes to the woman he most prefers and who has not rejected him before. If the woman receiving the proposal is not engaged, she automatically accepts the proposal. If she is already engaged, she considers her preferences for her new suitor and her existing fiancé respectively. If she prefers her new suitor, she dumps her fiancé and gets engaged to her new love. If she prefers her existing fiancé, she ignores the potential intruder's advances. Once she has made her decision, the algorithm moves on to the next unmarried man. Once all the unmarried men have made their proposals, the algorithm moves on to the next round. At this stage, a rejected male fiancé can propose again to someone else. The algorithm ends when all participants have someone to marry.

想象一下,有六个朋友——三男三女——住在纽约市中央公园附近的两套公寓里,共用一个走廊。为了方便起见,我们姑且称他们为亚历克斯、本、卡洛斯、戴安娜、艾玛和菲奥娜。他们彼此认识,都是单身,也都在考虑结婚。当被问到婚姻状况时,他们会表明自己的婚姻偏好,如上一页的表格所示。

Imagine six friends—three men and three women—who live near Central Park in New York City in two apartments that share a hallway. We’ll be discreet and refer to them as Alex, Ben, Carlos, Diana, Emma, ​​and Fiona. They all know each other. They’re all single. They’re all thinking about getting married. When asked, they indicate their marital preferences, as shown in the table on the previous page.

第一轮,亚历克斯向戴安娜求婚。戴安娜答应了,因为她当时正好有空。然后,本向戴安娜求婚。由于戴安娜更喜欢本,所以她甩了亚历克斯,接受了本的求婚。卡洛斯也向戴安娜求婚,但毫无进展。第二轮,亚历克斯和卡洛斯都是单身。亚历克斯向他名单上的第二个人艾玛求婚。艾玛至今未婚,所以她接受了亚历克斯的求婚。卡洛斯向菲奥娜求婚,菲奥娜也答应了,因为她仍然单身。就这样,每个人都订婚了——亚历克斯和艾玛,本和戴安娜,卡洛斯和菲奥娜。所有人的婚姻都很稳定。艾玛更喜欢本,但她不能拥有他,因为他更愿意和他未来的妻子戴安娜在一起。同样,亚历克斯和卡洛斯对戴安娜也怀有单相思的感情,但她决心嫁给本,她梦中的男人。菲奥娜很高兴与卡洛斯订婚——她的第一选择——尽管卡洛斯也疯狂地迷恋戴安娜。

In the first round, Alex proposes to Diana. Diana accepts because she is available at that moment. Then, Ben proposes to Diana. Since Diana prefers Ben over Alex, she dumps Alex and accepts Ben’s proposal. Carlos also proposes to Diana but doesn’t stand a chance. In the second round, Alex and Carlos are single. Alex proposes to Emma, ​​the number two on his list. Emma is still unmarried so she accepts Alex’s advances. Carlos asks Fiona for her hand in marriage and she accepts because she is still single. That’s it. Everyone is now engaged – Alex & Emma, ​​Ben & Diana, Carlos & Fiona. All the marriages are stable. Emma would prefer Ben but she can’t have him because he prefers to be with Diana, his future wife. Likewise, Alex and Carlos have unrequited feelings for Diana but she is determined to marry Ben, the man of her dreams. Fiona is happily engaged to Carlos – her first choice – even though he is also crazy about Diana.

作为配对方案,盖尔和沙普利的算法相当严苛——所有那些拒绝。不过,人们可能会想, 寻找伴侣的人并不会本能地遵循与盖尔-夏普利算法相同的程序。实际上,清晰的求婚和有力的回应会演变成暗自一笑、渴望的眼神、向朋友询问以及礼貌的拒绝。虽然有相似之处,但也存在差异。事实上,偏好会随着时间而变化。分离的情感成本意味着人们不愿做出剧烈的改变。尽管存在这些矛盾,一些在线约会机构现在仍在使用盖尔-夏普利算法来匹配客户。

As a scheme for pairing the couples, Gale and Shapley's algorithm is pretty harsh - all those rejections. Still, one might wonder whether People seeking a partner do not intuitively follow the same procedure as the Gale-Shapley algorithm. In reality, clear proposals and forceful responses morph into secret smiles, longing glances, inquiries of friends, and polite refusals. While there are similarities, there are also differences. In reality, preferences evolve over time. The emotional costs of separation mean that individuals are reluctant to make drastic changes. Despite these contradictions, some online dating agencies are now using the Gale-Shapley algorithm to match clients.

全球规模最大的住院医师匹配工作之一,每年由美国国家住院医师匹配计划 (NRMP) 执行。该计划负责将医学毕业生与全美各地医院的住院医师职位进行匹配。如今,该计划每年为 4 万名注册毕业生匹配 3 万个住院医师职位。NRMP 成立于 1952 年,其采用的算法是早期匹配机构的波士顿池算法 (Boston Pool),并沿用了四十年。20 世纪 70 年代,人们发现波士顿池算法与独立开发的盖尔-夏普利方法本质上相同。最尴尬的是,这支默默无闻的波士顿池团队比那位杰出的数学家和经济学家团队领先了十年。当然,他们的学术论文包含形式化证明,而波士顿池算法仅为该特定应用而设计。

One of the largest matching efforts in the world is performed annually by the National Residency Matching Program (NRMP). This program matches medical graduates with residency positions in hospitals across the United States. Today, the program matches 40,000 registered graduates with 30,000 residency positions each year. When it was founded in 1952, NRMP adopted an algorithm from an earlier matching agency, the Boston Pool algorithm, which it used for another forty years. In the 1970s, it came to light that the Boston Pool algorithm was essentially the same as the independently developed Gale-Shapley method. Most embarrassingly, the unknown Boston Pool team had been a decade ahead of the eminent duo of a mathematician and an economist. Of course, their academic paper contained a formal proof, while the Boston Pool algorithm was designed for that specific application only.

20世纪90年代,著名经济学家和数学家阿尔文·罗斯(Alvin Roth)受邀改进NRMP的匹配算法。罗斯的新方法与时俱进,允许符合条件的夫妇共同申请安置。它还试图防止作弊的申请人利用系统为自己牟利。与波士顿池算法不同,罗斯的技术采用单向匹配,只考虑申请人的偏好。

In the 1990s, renowned economist and mathematician Alvin Roth was brought in to revamp the NRMP matching algorithm. Moving with the times, Roth's new method allowed medical couples to seek joint placement. It also attempted to prevent cheating applicants from gaming the system to their advantage. Unlike the Boston Pool algorithm, Roth's technique uses one-way matching, where only the preferences of the applicants are considered.

沙普利和罗斯因其在博弈论方面的贡献共同获得了2012年诺贝尔经济学奖。博弈论是数学的一个分支,研究智能决策者之间的竞争与合作。沙普利是两位博弈论大师中的长者,被广泛认为是伟大的理论家,为罗斯对市场运作的实践研究奠定了基础。诺贝尔奖备忘录的一大亮点是提到了盖尔-沙普利算法。盖尔于2008年去世。罗斯享年92岁,该奖不追授。他目前仍在斯坦福大学和哈佛大学工作。

Shapley and Roth shared the 2012 Nobel Prize in Economics for their work on game theory , the branch of mathematics that studies competition and cooperation between intelligent decision makers. Shapley, the elder of the two, is widely regarded as the great theorist who laid the foundation for Roth's practical investigations into the workings of markets. One of the highlights of the Nobel Prize memorandum was the mention of the Gale-Shapley algorithm. Gale had died in 2008,at the age of 92, and the prize is not awarded posthumously. Roth continues to work at Stanford and Harvard universities.

人工进化

Artificial evolution

20世纪60年代,约翰·霍兰德(John Holland)采用了一种全新的方法来解决组合优化问题。独特之处在于,他的算法已经有40亿年的历史了!

In the 1960s, John Holland took a radically new approach to solving combinatorial optimization problems. The unique thing is that his algorithm was already four billion years old!

霍兰德于1929年出生于印第安纳州韦恩堡。和迪杰斯特拉一样,他在学习物理时也迷上了计算机编程。在麻省理工学院,他为旋风计算机(Whirlwind)编写了一个程序。旋风计算机由美国海军和空军共同资助,是第一台实时运行并配有屏幕的计算机。该机器旨在处理雷达数据,并提供来袭飞机和导弹的预警。

Holland was born in 1929 in Fort Wayne, Indiana. Like Dijkstra, he caught the computer programming bug while studying physics. At MIT, he wrote a program for the Whirlwind computer. Funded by both the U.S. Navy and Air Force, Whirlwind was the first computer to operate in real time and have a screen. The machine was designed to process radar data and provide early warning of incoming aircraft and missiles.

在IBM短暂担任程序员后,霍兰德前往密歇根大学攻读硕士学位,随后又获得通信科学博士学位。几年后,“计算机科学”一词才开始流行。霍兰德的导师是亚瑟·伯克斯,他于1946年向媒体展示了ENIAC。

After a brief stint at IBM as a programmer, Holland went to the University of Michigan to earn his master's degree, followed by a doctorate in communication science. It would be several years before the term "computer science" became fashionable. Holland's supervisor was Arthur Burks, the man who demonstrated the ENIAC to the press in 1946.

在大学图书馆浏览时,霍兰德偶然发现了罗纳德·费舍尔的一本旧书,名为 《自然选择的遗传理论》(1930年)。这本书将数学应用于自然进化的研究。霍兰德后来回忆道:

While browsing in the university library, Holland came across an old book by Ronald Fisher called The Genetical Theory of Natural Selection (1930). The book applied mathematics to the study of natural evolution. Holland later recalled:

那是我第一次意识到,重要的数学知识可以应用于进化论。这个想法真的吸引了我。

That was the first time I realized that you could apply important mathematics to evolution. The idea really appealed to me.

受此启发,霍兰德决定在计算机上模拟进化。他在整个20世纪60年代和70年代都在探索这个非凡的想法。他坚信自己发现了一些重要的东西,并于1975年出版了一本关于他发现的书。但这本书的销量令人失望。科学界对此并不十分感兴趣。

Inspired, Holland decided he would simulate evolution on a computer. He pursued this remarkable idea throughout the 1960s and 1970s. He was so convinced he was onto something significant that he published a book about his findings in 1975. Sales were disappointing. The scientific community was not very interested.

近二十年后,霍兰德为科普杂志《科学美国人》撰写了一篇关于遗传算法的文章同年,他的著作第二版出版。遗传算法终于在主流计算机科学领域取得了突破。霍兰德这篇长期被忽视的文章如今已被超过6万本书籍和科学论文引用(正式提及),以学术标准来看,这无疑是一次巨大的成功。

Nearly twenty years later, Holland wrote an article on the subject of genetic algorithms for the popular science magazine Scientific American. That same year, a second edition of his book rolled off the presses. At last, genetic algorithms had made their breakthrough into mainstream computer science. Holland's long-ignored text has now been cited (formally referred to) in more than 60,000 books and scientific articles—a box office success by academic standards.

约翰·霍兰德(1929-2015),

20世纪60年代第一个遗传算法的发明者。

John Holland (1929-2015),

inventor of the first genetic algorithm in the 1960s.

自然进化通过三种机制——选择、遗传突变——使物种适应其生存环境。这一过程适用于野生物种。尽管同一物种内的个体具有许多共同的特征,但不同动物之间也存在差异。一些特征有利于生存,而另一些则有害。选择是指具有良好特征的个体更有可能存活到成年并繁衍后代。遗传是指子女倾向于拥有与父母相同的身体特征。因此,幸存者的子女通常也拥有相同的良好特征。突变是指遗传物质发生随机变化并遗传给后代。根据染色体的不同部分,突变可能影响很小或没有影响,也可能产生极大的影响。 导致变化。经过许多代,选择和突变确保种群中,更大比例的个体通常具有有利于生存和繁殖的特征。突变就像一张万能牌。它通常对种群没有影响。有时,它会为彻底有益的变化埋下种子。

Natural evolution adapts a species to its environment through three mechanisms – selection, heredity, and mutation. This process operates on species that live in the wild. Although individuals within a species share many characteristics, there is variation from one animal to another. Some characteristics are beneficial for survival, while others are detrimental. Selection refers to the fact that individuals with favorable characteristics are more likely to survive to adulthood and reproduce. Heredity is the tendency for children to have the same physical characteristics as their parents. Therefore, children of survivors often have the same favorable characteristics. Mutation is the occurrence of random changes in the genetic material that is passed on to a child. Depending on which part of a chromosome is involved, a mutation may have little or no effect, or it may have an extreme effect cause change. After many generations, selection and mutation ensure that within a population, a larger proportion of individuals will often have characteristics that are favorable for survival and reproduction. Mutation is the wild card in the deck. It usually has no effect on the population. Sometimes it plants the seed for a radically beneficial change.

自然进化的经典例子是胡椒蛾。它的名字来源于斑驳的翅膀,看起来像是白​​纸上撒了黑胡椒。这种蛾子的外观是一种伪装,使饥饿的鸟类在桦树皮的白色背景下更难发现它。十八世纪,胡椒蛾主要呈浅色。奇怪的是,到了十九世纪末,几乎所有大城市里的胡椒蛾都变成了深色。在一个世纪的时间里,英国城市胡椒蛾种群的颜色发生了变化。

The classic example of natural evolution at work is the peppered moth. Its name comes from the mottled wings that look as if black pepper has been sprinkled on white paper. The moth’s appearance is a form of camouflage, making it harder for hungry birds to see it against the white background of birch bark. In the eighteenth century, peppered moths were predominantly light in colour. Oddly enough, by the end of the nineteenth century, almost all peppered moths in the major cities were dark in colour. Over the course of a century, the urban peppered moth population in England had changed colour.

显然,这种变化是由工业革命造成的。化石燃料的快速使用导致大量工厂的兴建,排放出大量的烟雾和煤烟。树皮、墙壁和路灯柱逐渐变黑。浅色蝴蝶越来越容易受到捕食者的攻击,被捕杀的数量也越来越多。深色蝴蝶则繁衍生息,将它们天生的伪装遗传给了后代。随着时间的推移,种群内部的数量平衡逐渐向深色蝴蝶倾斜。

It became clear that the change was caused by the industrial revolution. The rapidly increasing use of fossil fuels had led to the construction of large numbers of factories, belching out huge clouds of smoke and soot. Tree bark, walls and lampposts were gradually turning black. Light-coloured butterflies became increasingly vulnerable to predators and were being killed in increasing numbers. The dark butterflies thrived, passing on their natural camouflage to their offspring. Over time, the balance of numbers within the population had shifted in favour of the dark butterflies.

霍兰德认为,人工进化可以用来解决组合优化问题。他的想法是,可能的解可以被视为群体中的个体。基于遗传学,他建议每个解应该用一系列字母来表示。例如,为了解决旅行商问题,一次行程可以用城市首字母BFHM来表示。他认为这一系列字母类似于生物体的染色体,或者说构成染色体的DNA。

Holland believed that artificial evolution could be used to solve combinatorial optimization problems. His idea was that possible solutions could be viewed as individuals within a population. Based on genetics, he suggested that each solution should be represented by a series of letters. For example, to solve the traveling salesman problem, a tour could be represented by the first letter of the cities: BFHM. He considered this series to be analogous to a chromosome of a living organism, or the DNA that makes up a chromosome.

荷兰遗传算法对这组 人工染色体进行操作。选择是通过评估每个人工染色体并丢弃表现最差的染色体来进行的。遗传是通过混合字母序列并创建下一代染色体来模拟的。突变是通过随机替换少量染色体中的字母来模拟。这三个过程重复进行,产生一代又一代的染色体,直到最终在种群中形成一个可接受的解决方案。

Dutch genetic algorithms operate on this collection of artificial chromosomes. Selection is performed by evaluating each artificial chromosome and discarding the worst performing one. Heredity is simulated by mixing letter sequences and creating the next generation of chromosomes. Mutation isimitated by randomly replacing letters in a handful of chromosomes. These three processes are repeated to produce generations of chromosomes until an acceptable solution is finally recognized within the population.

经过多代进化,这三种机制共同作用,提升了种群中良好解决方案的比例。选择引导人们寻找更优的解决方案。遗传以意想不到的方式将有希望的答案混合在一起,产生新的候选解决方案。突变增加了种群的多样性,开辟了新的可能性。

After many generations, the three mechanisms work together to increase the proportion of good solutions in the population. Selection guides the search for better solutions. Heredity mixes promising answers in unexpected ways to yield new solution candidates. Mutations increase the diversity in the population, opening up new possibilities.

我们可以将霍兰德算法总结如下:

We can summarize Holland's algorithm as follows:

创建随机染色体群体。

Create a population of random chromosomes.

重复以下步骤:

Repeat the following steps:

评估每个染色体的性能。

Evaluate the performance of each chromosome.

去除表现最差的染色体。

Remove the worst performing chromosomes.

随机配对幸存的染色体。

Pair the surviving chromosomes randomly.

然后让每对产生两个子代染色体。

Then let each pair produce two child chromosomes.

将儿童添加到人口中。

Add the children to the population.

随机改变少量染色体。

Randomly change a small number of chromosomes.

经过一定数量的代之后停止重复。

Stop repeating after a certain number of generations.

提供性能最佳的染色体。

Deliver the best performing chromosome.

著名生物学家理查德·道金斯在他的一本书中报道了一种利用遗传算法揭示秘密信息的方法。道金斯直接使用染色体作为秘密信息的猜测。他通过将每个染色体与秘密信息进行比较来进行选择。道金斯的拟合函数 尚不清楚,但他的程序很可能为每个染色体计算了一个分数。也许正确位置的正确字母值+2分,错误位置的正确字母值+1分,错误字母值0分。得分最低的染色体被丢弃。得分最高的染色体通过交叉的方式进行“配对” 交叉通过在父母的染色体之间交换片段来为后代产生染色体。染色体上的一个随机位置被选择。第一个孩子的染色体是第一个孩子染色体的副本。第一个孩子的染色体是父亲染色体的副本,直到该位置为止,然后是母亲染色体的副本。第二个孩子的染色体是母亲染色体的副本,直到该位置为止,然后是父亲染色体的副本。例如,如果父母的染色体:

In one of his books, the famous biologist Richard Dawkins reported using a genetic algorithm to reveal a secret message. Dawkins used chromosomes directly as guesses for the secret message. He performed the selection by comparing each chromosome to the secret message. Dawkins' fit function is unclear, but it is likely that his program calculated a score for each chromosome. Perhaps the correct letter in the correct place was worth +2 points, the correct letter in the wrong place was worth +1, and an incorrect letter was worth 0. The chromosomes with the lowest values ​​were discarded. The highest scoring chromosomes were "paired" by means of crossing -over . Crossing-over produces chromosomes for offspring by exchanging fragments between the parents' chromosomes. A random position on the chromosome is chosen. The first child's chromosome is a copy of the chromosome of thefather up to that position, and a copy of the mother's chromosome thereafter. The second child's chromosome is a copy of the mother's up to the same position, and then a duplicate of the father's. For example, if the parents' chromosomes:

ABCDEF,LMNOPQ,

ABCDEF, LMNOPQ,

并且交叉点是第三个字母,那么孩子们的字母序列就是:

and the crossing-over point is the third letter, then the letter sequences of the children are:

ABCOPQ,LMNDEF。

ABCOPQ, LMNDEF.

道金斯在计算机上运行了这个遗传算法。最初,染色体是随机的字母序列。经过十代,他报告了群体中得分最高的染色体:

Dawkins ran this genetic algorithm on a computer. Initially, the chromosomes were random sequences of letters. After ten generations, he reported the highest-scoring chromosome in the population:

MDLDMNL SITPSWHRZZREZ MECS P.

MDLDMNL SITPSWHRZZREZ MECS P.

二十年后则是:

After twenty it was:

MELDINLS 它是 WPRKE Z WECSEL。

MELDINLS IT IS WPRKE Z WECSEL.

三十岁以后:

After thirty:

这与 B WECSEL 很相似。

METHINGS IT ISWLIKE B WECSEL.

经过四十三代,算法找到了秘密信息:

After forty-three generations, the algorithm found the secret message:

我认为它就像一只黄鼠狼。

METHINKS IT IS LIKE A WEASEL.

道金斯的例子非常不同寻常,它直接评估染色体,将其与秘密信息的字母进行比较。为了解决实际问题,染色体通常必须控制解决方案的构建,然后再对其进行评估。例如,霍兰德利用染色体来控制一个模拟商品市场的计算机程序的行为。即使这些程序最初并非为此目的而设计的,他的智能体也发展得如此之快,以至于引发了投机泡沫和金融崩溃。

It is highly unusual that Dawkins' example evaluates the chromosome directly, comparing it to the letters of the secret message. To solve real problems, the chromosome must usually control the construction of a solution, which is then evaluated. Holland, for example, used chromosomes to control the behavior of a computer program that simulates the commodity market. Even if they were not initially programmed to do so, his agents developed in such a way that they caused speculative bubbles and financial collapses.

美国国家航空航天局(NASA)在其一项太空任务中,将遗传算法应用于无线电天线的设计。在该设计中,染色体控制着天线的形状。通过计算天线对传入无线电信号的灵敏度来评估算法的可行性。改进的X波段天线于2006年在NASA的“空间技术5号”任务中进行了飞行测试。

NASA applied genetic algorithms to the design of a radio antenna for one of its space missions. In that case, chromosomes controlled the shape of the antenna. The viability of algorithms was assessed by calculating the sensitivity of the antenna to incoming radio signals. An evolved X-band antenna flew on the NASA Space Technology 5 mission in 2006.

1967年,霍兰德被任命为密歇根大学计算机科学与工程教授。除了发明遗传算法外,他还对复杂性理论和混沌理论做出了重要贡献。然而,令人意想不到的是,他竟然成了一名心理学教授。

In 1967, Holland was appointed professor of computer science and engineering at the University of Michigan. In addition to inventing genetic algorithms, he also made important contributions to complexity theory and chaos theory. Very unusually, he became a professor of psychology.

2015年,霍兰德去世,享年86岁。圣达菲研究所所长大卫·克拉考尔评价他:

In 2015, Holland died at the age of 86. David Krakauer, president of the Santa Fe Institute, said of him:

约翰的独特之处在于,他汲取了进化生物学的思想,并将其应用于计算机科学的搜索和优化,然后利用他在计算机科学领域的发现,让我们重新思考进化动力学。这种在两个思想世界之间严谨的转换,正是深邃思想的标志。

John is quite unique in that he took ideas from evolutionary biology and used them to transform search and optimization in computer science, and then used what he discovered in computer science to allow us to rethink evolutionary dynamics. That kind of rigorous translation between two worlds of thought is the hallmark of very deep minds.

尽管遗传算法仍然很流行,但它们通常并非解决特定优化问题的最有效方法。当对良好解决方案的构建机制缺乏深入了解时,它们的效果最佳。遗传算法受随机排列驱动,在设计空间中盲目搜索。由于遗传算法易于编程,研究人员通常只需让计算机完成遗传算法的计算,而无需花费宝贵的时间来发明新的快速搜索算法。

Although genetic algorithms are still popular, they are often not the most efficient way to solve a given optimization problem. They work best when there is little insight into how good solutions are constructed. Driven by random permutations, genetic algorithms search blindly in the design space. Because they are easy to program, researchers often simply let the computer do the work on genetic algorithms, rather than spend valuable time inventing a new fast search algorithm.

当霍兰德在密歇根大学研究遗传算法时,美国国防部一个名不见经传的部门播下了计算机科学革命的种子。在冷战的推动下,在两位富有远见卓识的领导者的领导下,美国开始互联其计算机网络。这项努力将产生深远的影响。在此过程中,一种新的炼金术诞生了——算法与电子技术的融合。

While Holland was working on his genetic algorithms in Michigan, the seeds of a revolution in computer science were being sown by an obscure department of the U.S. Department of Defense. Spurred on by the Cold War and led by two visionaries, America began to connect its computer networks. The endeavor would have far-reaching consequences. And in the process, a new alchemy emerged—the fusion of algorithms and electronics.

 

 

物理交通流变得极其复杂。数据流也变得异常复杂,曾经通过信使,后来通过信件和电传,现在则通过互联网。事实上,诸如用于操作交通信号灯、分拣邮件和在互联网上寻找路线的算法,决定了它们的运行效率。

Physical traffic flows have become enormously complex. So have data flows, once by messenger, later by letter and telex, and now via the Internet. In fact, algorithms, such as those used to operate traffic lights, sort mail and find a route on the Internet, determine how efficiently they run.

7

7

互联网

The Internet

设想一个“思考中心”似乎合情合理,它能融合当今图书馆的各种功能。这一设想很快扩展为一个由这些中心组成的网络,这些中心通过宽带通信线路相互连接,并通过有线服务与各个用户连接。在这样的系统中,计算机的速度将得到平衡,而庞大内存和复杂程序的成本将由众多用户分摊。

It seems reasonable to imagine […] a “thinking center” that would incorporate the functions of today’s libraries. The picture quickly expands to a network of such centers, linked to each other by broadband communication lines and to individual users by wireline services. In such a system, the speed of the computers would be balanced, and the cost of the huge memories and sophisticated programs would be shared by the number of users.

JCR Lickslider

JCR Lickslider

人机共生,1960年

Man-Computer Symbiosis, 1960

1957年10月4日,苏联将世界上第一颗人造卫星发射升空。斯普特尼克1号是一个无线电发射器,封装在一个直径仅58厘米的金属球体中。球体的振膜上连接着四根无线电天线。在21天的时间里,斯普特尼克发出了清晰、规律的哔哔声信号。当卫星飞过头顶时,世界各地的无线电接收器接收到了这些信号。斯普特尼克1号的发射引起了轰动。突然之间,太空成为了一个新的前沿领域,苏联在太空领域领先于西方。

On October 4, 1957, the Soviet Union launched the world's first artificial satellite into orbit. Sputnik 1 was a radio transmitter encased in a metal sphere just 58 centimeters in diameter. Four radio antennas were attached to the sphere's diaphragm. For twenty-one days, Sputnik sent out clear, regular beeping signals. The signal was picked up by radio receivers around the world as the satellite passed overhead. Sputnik 1 was a sensation. Suddenly, space was a new frontier, and the Soviet Union had gained a head start on the West.

美国总统德怀特·艾森豪威尔决心,美国绝不会再满足于在科技竞争中屈居第二。为此,艾森豪威尔创建了两个新的政府机构。他授权美国国家航空航天局(NASA)负责太空探索与和平利用。其邪恶兄弟——高级研究计划局(ARPA)——则负责资助突破性军事技术的研发。ARPA将成为军方与科研机构之间的桥梁。

U.S. President Dwight D. Eisenhower decided that the United States would never again be content with second place in the race for technological superiority. To that end, Eisenhower created two new government agencies. He charged the National Aeronautics and Space Administration (NASA) with the exploration and peaceful exploitation of space. Its evil brother – the Advanced Research Project Agency (ARPA) – was charged with funding the development of groundbreaking military technology. ARPA was to be a link between the military and research organizations.

冷战即将来临。

The Cold War was looming.

阿帕网

ARPANET

1962年,美国高级研究计划局(ARPA)成立了信息处理技术办公室(IPTO)。IPTO的使命是资助信息技术(即计算机和软件)的研究和开发。IPTO的首任主任是JCR(约瑟夫·卡尔·罗伯内特)·利克莱德。

In 1962, ARPA established the Information Processing Techniques Office (IPTO). The mission of IPTO was to fund research and development in information technology (i.e. computers and software). The first director of IPTO was JCR (Joseph Carl Robnett) Licklider.

利克莱德出生于1915年,在圣路易斯长大。大家都喜欢他,人们常简称他为“利克”。利克始终保持着一口密苏里口音。大学期间,他学习了物理、数学和心理学等不同寻常的融合学科。1942年,他获得了罗切斯特大学心理声学博士学位,该学科是人类感知声音背后的科学。之后,他在哈佛大学工作,之后成为麻省理工学院的副教授。正是在麻省理工学院,利克莱德第一次对计算机产生了兴趣。事实证明,他拥有解决技术问题的天赋,甚至可以说堪称天才。他将这份新发现的热情带到了高级研究计划局(ARPA)的工作中。

Born in 1915, Licklider grew up in St. Louis. Everyone liked him, and he was often called Lick for short. Lick never lost his Missouri accent. In college, he studied an unusual blend of physics, mathematics, and psychology. He received his doctorate in 1942 from the University of Rochester in psychoacoustics, the science behind human perception of sound. He then worked at Harvard University before becoming an associate professor at MIT. It was at MIT that Licklider first became interested in computers. It turned out that he had a talent for solving technical problems, even a genius at it. He carried his newfound passion into his role at ARPA.

利克莱德撰写了一系列富有远见的论文,提出了新的计算机技术。《人机共生》(1960)一文认为,计算机应该与用户更具互动性,实时响应用户的请求,而不是通过一堆打印纸。1963年,他提议创建一个星际计算机网络,以实现多台计算机在远距离的集成操作。在《未来的图书馆》(1965)一文中,他认为纸质书籍可以被接收、显示和处理信息的电子设备所取代。1968年,他与鲍勃·泰勒共同发表了一篇论文,设想将联网计算机作为用户之间通信的设备。在长达十年的创造力迸发中,利克莱德预测了个人电脑、互联网、电子书和电子邮件的出现。他的想象力远远超出了现实。他的作品勾勒出宏伟的愿景,并鼓励其他人去追求。

Licklider wrote a series of visionary papers proposing new computer technologies. Man-Computer Symbiosis (1960) argued that computers should be more interactive with users, responding to their requests in real time rather than through stacks of printed pages. In 1963 he proposed the creation of an Intergalactic Computer Network that would allow the integrated operation of multiple computers over great distances. In Libraries of the Future (1965) he argued that the paper book could be replaced by electronic devices that receive, display, and process information. In 1968 he published a paper with Bob Taylor that envisioned networked computers as devices for communication between users. In a decade-long burst of creativity, Licklider predicted personal computers, the Internet, e-books, and e-mail. His imagination stretched far beyond reality. His writings sketched grand visions that others were encouraged to pursue.

JCR Licklider,计算机网络远见者。

JCR Licklider, computer network visionary.

第一步是麻省理工学院的 MAC 项目(多路访问计算)。在此之前,计算机只有一个用户。MAC 项目构建了一个系统,一台大型计算机可以同时供多达 30 名用户共享。每个用户都有自己的专用终端,由键盘和屏幕组成。计算机会在各个用户之间切换,让每个用户都感觉自己拥有一台功能较弱的机器。

The first step was Project MAC (Multiple Access Computing) at MIT. Up until then, computers had had a single user. Project MAC built a system in which a single mainframe computer could be shared by up to thirty users simultaneously. Each user had his own dedicated terminal consisting of a keyboard and a screen. The computer switched its attention between the separate users, giving each the illusion that he had a single, but less powerful, machine at his disposal.

1964年,利克莱德离开ARPA,加入IBM,不到两年后,鲍勃·泰勒(Bob Taylor)就成为了IPTO的总裁。泰勒出生于1932年,祖籍德克萨斯州达拉斯,此前曾在NASA工作。与利克莱德一样,泰勒也拥有心理学和数学背景。然而,对于一家研究资助机构的高管来说,泰勒却不同寻常地没有博士学位。利克莱德是一位充满创意的人,而泰勒则拥有一种近乎神秘的才能,能够带来突破性的技术。泰勒在接下来的三十年里,致力于将利克莱德的愿景变为现实。

Less than two years after Licklider left ARPA for IBM in 1964, Bob Taylor became the president of IPTO. Born in 1932 and originally from Dallas, Texas, Taylor had previously worked at NASA. Like Licklider, Taylor had a background in psychology and mathematics. Unusually for an executive in a research-funding agency, Taylor did not have a doctorate. Where Licklider was an ideas man, Taylor had an almost mysterious talent for delivering breakthrough technology. Taylor would spend the next thirty years making Licklider's visions come true.

泰勒对计算机的热情源于一次简单的挫败感。他在五角大楼的办公室里有三台计算机终端。每台终端都连接到位于其他地方的另一台计算机——一台在麻省理工学院,一台在圣莫尼卡,第三台在伯克利。这些计算机之间没有任何连接。为了从一台机器向另一台机器发送信息,泰勒必须在另一台终端上重新输入。他回忆道:

Taylor's enthusiasm for computers came from simple frustration. There were three computer terminals in his office at the Pentagon. Each terminal was connected to another computer located elsewhere—one at MIT, one at Santa Monica, and the third at Berkeley. The computers were not connected to each other in any way. To send a message from one machine to another, Taylor had to retype it on the other terminal. As he recalled:

我说,天哪,该怎么做一目了然。既然有这三个终端,那就应该只有一个终端可以通向任何地方。

I said, oh man, it's obvious what needs to happen. If you have these three terminals, then there should be just one terminal that goes everywhere you want.

在泰勒的敦促下,IPTO项目主管拉里·罗伯茨撰写了一份计算机网络建设招标书。新网络被命名为阿帕网(ARPANET)。最初,ARPANET将连接四个站点,并可能扩展到35个。中标者是马萨诸塞州剑桥市的博尔特、贝拉内克和牛顿技术公司(BBN)。

At Taylor's urging, IPTO program director Larry Roberts wrote a request for bids to build a computer network. The new network was to be called ARPANET. Initially, ARPANET would link four sites, with a possible expansion to thirty-five. The winning bid was submitted by Bolt, Beranek, and Newton Technologies (BBN) of Cambridge, Massachusetts.

阿波罗11号登月三个月后,即1969年10月29日,查理·克莱恩通过阿帕网(ARPANET)发送了第一条信息。当时,克莱恩是加州大学洛杉矶分校(UCLA)伦纳德·克莱因罗克(Leonard Kleinrock)小组的编程专业学生。他想向近430英里外斯坦福研究所的一台计算机发送“登录”命令。然而,系统在收到第二个信号后崩溃了。结果,通过阿帕网发送的第一条信息是令人遗憾的“LO”片段。大约一个小时后,克莱恩重启了系统,再次尝试登录。这一次,登录成功了。

Three months after Apollo 11 landed on the moon, on October 29, 1969, Charley Kline sent the first message over the ARPANET. Kline was a programming student in Leonard Kleinrock's group at the University of California, Los Angeles (UCLA). He wanted to send the command "LOGIN" to a computer at the Stanford Research Institute, almost 430 miles away. However, the system crashed after the second signal was received. As a result, the first message sent over the ARPANET was the unfortunate fragment "LO." About an hour later, after rebooting the system, Kline tried again. This time, the login was successful.

ARPANET 是最早使用分组交换的网络之一。该技术由保罗·巴兰和唐纳德·戴维斯独立发明。巴兰是一位波兰裔美国电气工程师,他在 1964 年为兰德公司工作期间发表了这一想法。戴维斯是图灵 ACE 项目的资深专家,他在伦敦国家物理实验室 (NPL) 工作期间也提出了类似的想法。戴维斯选择了“分组”“分组交换”这两个术语来描述他的算法。戴维斯后来参与了 1969 年构建世界上第一个分组交换网络——小型 Mark 1 NPL 网络的团队。

ARPANET was one of the first networks to use packet switching. The technology was invented independently by Paul Baran and Donald Davies. Baran, a Polish-American electrical engineer, published the idea in 1964 while working for the RAND Corporation. Davies, a veteran of Turing's ACE project, developed the similar idea while working at the NPL in London. Davies chose the terminology packet and packet switching to describe his algorithm. Davies was later part of the group that built the world's first packet-switching network in 1969—the small-scale Mark 1 NPL Network.

小型网络中的分组交换

PACKET SWITCHING IN A SMALL NETWORK

分组交换解决了在计算机网络中高效传输消息的问题。设想一个由九台计算机组成的网络,它们通过传输电子信号的电缆物理连接在一起。为了降低基础设施成本,每台计算机只与其他几台计算机连接。直接连接的计算机被称为邻居,无论它们实际相距多远。向邻居发送消息很容易。消息被编码为一系列电子脉冲,沿着电缆传输到接收者。相比之下,向网络另一端的计算机发送消息则比较复杂。消息必须通过中间的计算机传递。因此,网络中的计算机必须相互协作,才能提供覆盖整个网络的通信服务。

Packet switching solves the problem of efficiently transporting messages across a network of computers. Consider a network of nine computers that are physically connected to each other by cables that carry electronic signals. To reduce the cost of the infrastructure, each computer is connected to only a few of the others. Computers that are directly connected to each other are called neighbors, regardless of how far apart they actually are. Sending a message to a neighbor is easy. The message is encoded as a series of electronic pulses that travel down the cable to the recipient. In contrast, sending a message to a computer on the other side of the network is complicated. The message must be passed through the intervening computers. Therefore, the computers in the network must cooperate to provide a network-wide communications service.

在分组交换出现之前,通信网络必须依赖专用的直接连接。这种方法在有线电话网络中很常见。假设计算机 1 想要与计算机 9 通信(见上图)。在 在传统的电路交换 网络中,网络会形成一条专用的电气连接,从计算机 1 到计算机 3,从计算机 3 到计算机 7,再从计算机 7 到计算机 9。在消息交换期间,所有其他计算机都被阻止通过这些链路发送消息。由于计算机通常发送短小、零散的消息,因此以这种方式建立专用的点对点连接会降低网络容量的利用率。而分组交换则通过消除点对点路由预留的需求,从而有效地利用了网络耦合。

Before packet switching, communication networks had to rely on dedicated direct connections. This approach was common in wired telephone networks. Let's assume that computer 1 wants to communicate with computer 9 (see figure above). In the In a conventional circuit-switched network, the network forms a dedicated electrical connection from computer 1 to computer 3, from 3 to 7, and from 7 to 9. During the message exchange, all other computers are blocked from sending messages over those links. Since computers typically send short, sporadic messages, setting up dedicated point-to-point connections in this way makes poor use of network capacity. Packet switching, on the other hand, makes efficient use of network coupling by eliminating the need for point-to-point route reservations.

在分组交换中,单个消息被分成多个段。每个段都放在一个数据包中。这些数据包在网络中独立发送。当所有数据包到达目的地后,会从中组装出原始消息的副本。网络通过一系列跳数将数据包从源传输到目的地在每一跳,数据包都通过两台计算机之间的单个连接进行传输。这意味着一个数据包一次只阻塞一个连接。这使得包含不同消息的数据包可以通过单个连接一个接一个地交替传输。无需保留从一端到另一端的整个连接。

In packet switching, a single message is divided into segments. Each segment is placed in a packet. The packets are sent independently through the network. When all the packets have arrived at their destination, a copy of the original message is assembled from them. The network transfers the packets from source to destination via a series of hops . At each hop, a packet is transferred via a single connection between two computers. This means that a packet only blocks one connection at a time. This allows packets of different messages to alternate – one after the other – via a single connection. There is no need to reserve the entire connection from one end to the other.

缺点是连接可能会出现拥塞当传入数据包的目的地是繁忙的传出连接时,它们必须被延迟并放入队列中,就会发生这种情况。

The disadvantage is that there can be congestion at the connections . This happens when incoming packets with a busy outgoing connection as their destination have to be delayed and placed in a queue.

分组交换网络就像一个公路网络。组成一条消息的数据包就像一队驶向目的地的汽车。这些汽车无需提前预订整条路线,只需在道路畅通时汇合即可。它们甚至可以选择不同的路线到达目的地。每辆车都会尽可能地沿着自己的路径在网络中穿行。

A packet switching network is like a road network. The packets that make up a single message are like a group of cars heading toward a destination. The cars have no need to reserve the entire route in advance. They simply merge when the road is clear. They can even take different routes to their destination. Each car follows its own path through the network, as best it can.

数据包由报 、消息部分(包内容、字母或 有效载荷)报尾组成 。报头包含数据包起始标记、目的地唯一标识号、消息标识号和序列号。序列号指示数据包在整个消息中的位置(1、2、3……)。计算机在接收数据包后,会使用序列号将接收到的数据包内容排序为 正确的顺序。脚部包含用于检查错误的信息以及包裹末端的标记。

A packet consists of a header , a part of the message (package content, letter or payload) and a trailer . The header consists of a marker of the beginning of the packet, a unique identification number for the destination, an identification number for the message and a sequence number. The sequence number indicates where the packet is located in the entire message (1, 2, 3…). The sequence numbers are used by a computer after receipt to sort the received contents of the packets into the correct order. The foot contains information for checking for errors and a marker for the end of the package.

网络上的计算机会持续监控其连接,以查找传入的数据包。接收到数据包后,计算机会对其进行处理。首先,从数据包头中读取目标标识号。如果接收计算机不是最终目的地,则计算机必须通过提供最快路由的连接转发数据包。用于此目的的连接由路由 表确定。路由表是网络上所有计算机或计算机组的标识号的列表。对于每个目的地,路由表都会确定哪个传出连接提供到该计算机的最快路由。接收计算机通过该连接转发数据包。如果接收计算机是预期的目的地,则检查标识号和序列号。当单个消息的所有数据包都到达后,计算机会使用序列号按顺序排列这些数据包的内容,以恢复原始消息(完整算法请参阅附录)。

Computers on the network constantly monitor their connections for incoming packets. When a packet is received, it is processed by the computer. First, the destination identification number is read from the header. If the receiving computer is not the final destination, the machine must forward the packet over the connection that provides the fastest route to the destination. The connection to use for this is determined by a routing table. The routing table is a list of all the identification numbers of computers, or groups of computers, on the network. For each destination, it determines which outgoing connection provides the fastest route to that machine. The receiving computer forwards a packet over that connection. If the receiving computer is the intended destination, the identification number and sequence number are checked. Once all the packets of a single message have arrived, the computer arranges the contents of those packets in order using the sequence number to recover the original message (see the Appendix for the full algorithm).

分组交换是分布式算法的一个例子。分布式算法运行在多台独立但相互协作的计算机上。每台计算机执行各自的任务,这在一定程度上对整体做出了贡献。

Packet switching is an example of a distributed algorithm. Distributed algorithms run on multiple, independent but cooperating computers. Each computer performs its own separate task, which contributes to the larger whole to some extent.

分组交换系统的一个重要组成部分是构建路由表的算法。路由算法决定了如何以最佳方式填充路由表。路由算法决定了哪些数据包会被发送到哪里。

An essential part of a packet switching system is the algorithm used to construct the routing table. The routing algorithm determines how the routing table can best be filled in. The routing algorithm determines where which packets go.

最初的 ARPANET 路由算法基于路由延迟信息的交换来做出决策。除了路由表之外,每台计算机还包含一个延迟表。该延迟表列出了网络上每台计算机的标识号,以及每台计算机之间发送数据包的预期时间。每台计算机会定期将其延迟表发送给所有邻居。当收到邻居的延迟表时,计算机会将数据包到达邻居所需的时间添加到延迟表中。因此,修改后的延迟表包含每台计算机的标识号以及数据包通过邻居到达邻居所需的时间。计算机将这些时间与路由表中的现有时间进行比较。如果新路由更快,则会调整当前条目。

The original ARPANET routing algorithm based its decisions on the exchange of routing delay information. In addition to a routing table, each computer contains a delay table. This delay table is a list of every computer identification number on the network and, for each of those machines, the expected time to send a packet from that computer to that computer. Periodically, each computer sends its delay table to all of its neighbors. When it receives a neighbor's delay table, the computer adds the time it would take for a packet to reach the neighbor. The modified table thus contains a list of every computer identification number and the time it would take for a packet to get there via the neighbor. The computer compares these times with the times already in the routing table. The current entry is adjusted if the new route is faster.

计算机 3 的路由表显示了数据包的目的地、途经计算机 1、2、4、7 和 8 的延迟,以及提供从计算机 3 到目的地的最短路由的邻居的标识号。延迟以跳数 (hops) 为单位。

THE ROUTE TABLE FOR COMPUTER 3 shows the packet destination, the delay through computers 1, 2, 4, 7, and 8, and the identification number for the neighbor that provides the shortest route from computer 3 to the destination. The delay is measured in hops.

总之:

In summary:

对于每台相邻的计算机:

For each neighboring computer:

得到他的延迟表。

Get his delay table.

对于表中的每个目的地:

For each destination in the table:

将该计算机的延迟添加到邻居的延迟中。

Add that computer's delay to the neighbor's.

如果新的延迟比路由表中的延迟短,则:

If the new delay is shorter than the delay in the routing table, then:

保存连接标识号和

Save the connection identification number and

路由表中的新延迟。

the new delay in the route table.

路由延迟可以通过到目的地的跳数来衡量。另一种方法是计算路由队列中的数据包数量。后者可以估算路由的拥塞程度,通常能得到更好的结果。

The delay of a route can be measured as the number of hops to the destination. An alternative is to count the number of packets in the queue along the route. The latter option provides an estimate of the congestion on the route and usually gives better results.

分组交换网络的优势之一是其强大的故障恢复能力。如果链路发生故障或变得过于拥堵,计算机可以检测到队列中数据包数量的增加,并相应地调整路由表以避免出现瓶颈。分组交换网络的缺点是数据包的传送时间无法预测。分组交换是一种“尽力而为”的服务。

One of the advantages of packet switching networks is their resilience to failure. If a link fails, or becomes excessively congested, computers can detect the resulting increase in the number of packets in the queue and adjust their routing tables accordingly to avoid a bottleneck. The disadvantage of packet switching networks is that packet delivery times are unpredictable. Packet switching is a 'best effort' service.

利克莱德在IBM任职两年后,于1968年被任命为麻省理工学院(MIT)电气工程教授,继续他的教学和研究生涯。与此同时,他领导了Mac项目直至1971年,并于1974年至1975年担任IPTO主任。1985年,利克莱德退休。

Licklider's stay at IBM, after his two years at ARPA, was followed in 1968 by an appointment as professor of electrical engineering at MIT, where he continued his teaching and research career. At the same time, he directed Project Mac until 1971 and was IPTO director from 1974 to 1975. In 1985, Licklider retired.

1970年,鲍勃·泰勒(Bob Taylor)在施乐公司帕洛阿尔托研究中心(Xerox's Palo Alto Research Center)创立了计算机科学实验室。在他任职期间,PARC构建了一系列卓越的现实世界原型。该研究中心构建了一种低成本的分组交换网络技术,用于连接同一栋楼内的计算机。这项技术——以太网——如今已成为全球最常用的有线计算机网络标准。该实验室还发明了一种图形用户界面(GUI),允许用户在屏幕上进行指向和点击——这种操作类似于苹果Mac电脑和运行微软Windows系统的电脑上使用的普通鼠标。施乐公司未能充分利用PARC的技术突破,这成为二十世纪最大的工业失败之一。泰勒于1983年离开PARC,随后为数字设备公司(Digital Equipment Corporation)创立了一个研究中心。他于1996年退休,并于2017年去世。

In 1970, Bob Taylor founded the computer science lab at Xerox’s Palo Alto Research Center. During his tenure, PARC built a series of remarkable real-world prototypes. The research center built a low-cost packet-switching networking technology for connecting computers within the same building. That technology—Ethernet—is now the world’s most common networking standard for connecting computers with wires. The lab also invented a graphical user interface that allowed you to point and click on a screen—the common mouse used on Apple Mac computers and computers running Microsoft Windows. In one of the greatest industrial failures of the twentieth century, Xerox failed to capitalize on the technological breakthroughs at PARC. Taylor left PARC in 1983 and went on to found a research center for Digital Equipment Corporation. He retired in 1996 and died in 2017.

最初的四节点分组交换式阿帕网(ARPANET)发展缓慢但稳定,平均每月新增一个节点(计算机位置)。阿帕网并非世界上第一个或唯一的计算机网络。尽管如此,它最终被证明是地球上最大的计算机网络——互联网——的前身。

The original four-node packet-switched ARPANET grew slowly but steadily, averaging one additional node (computer location) each month. ARPANET was not the world's first or only computer network. Nevertheless, it would prove to be the precursor to the largest computer network on the planet: the Internet.

互联网络

Internetworks

ARPANET 的首次公开演示于 1972 年 10 月在华盛顿举行的国际计算机通信大会 (ICCC) 上举行。此次演示由 BBN 的 Bob (Robert) Kahn 组织,连接了 40 多台计算机。数百名此前持怀疑态度的业内人士观看了演示,并对其印象深刻。分组交换技术突然间不再显得那么疯狂。

The first public demonstration of ARPANET took place in October 1972 at the International Computer Communication Conference (ICCC) in Washington. Organized by Bob (Robert) Kahn of BBN, the demonstration connected more than forty computers. Hundreds of previously skeptical industry insiders saw the demonstration and were impressed. Packet switching suddenly didn't seem such a crazy idea after all.

卡恩出生于1938年,祖籍纽约。在加入BBN之前,他在普林斯顿大学获得了硕士和博士学位。在ICCC演示后不久,他加入了IPTO,领导该网络的进一步发展。卡恩意识到,下一个重大挑战不是将计算机添加到ARPANET,而是将ARPANET连接到其他网络。

Kahn, born in 1938, was originally from New York. He received his master's and doctorate from Princeton before joining BBN. ​​Shortly after the ICCC demonstration, he joined IPTO to lead the network's further development. Kahn realized that the next big challenge was not adding computers to ARPANET, but connecting ARPANET to other networks.

ARPANET 大同小异——节点和链路都使用类似的有线技术。卡恩设想了一个高度互联的世界,信息可以在各种网络(有线、无线电、卫星、国际、移动、固定、快速、慢速、简单和复杂)的设备之间透明地传输。这无疑是一个宏大的概念。问题是如何让它发挥作用。卡恩提出了一个他称之为“开放式架构网络”的概念。这种方法看似前景光明,但关键在于细节。1973 年,卡恩访问了 ARPANET 研究员文顿·瑟夫在斯坦福的实验室,并宣称:

The ARPANET was all more of the same—the nodes and links used similar wired-line technology. Kahn envisioned a hyperconnected world in which messages could move transparently between devices on all sorts of networks—wired, radio, satellite, international, mobile, fixed, fast, slow, simple, and complex. It was a grand concept, to be sure. The question was how to make it work. Kahn came up with a concept he called open-architecture networking . The approach seemed promising, but the devil was in the details. In 1973, Kahn visited the Stanford lab of ARPANET researcher Vinton Cerf, and he declared:

我有一个问题。

I have a problem.

温特·瑟夫于1943年出生于康涅狄格州纽黑文。他毕业于斯坦福大学,获得数学学士学位,之后加入IBM。两年后,他决定前往加州大学洛杉矶分校继续深造,并先后获得硕士学位和博士学位。在加州大学洛杉矶分校,瑟夫开始研究阿帕网(ARPANET)。正是在那里,他第一次遇到了鲍勃·卡恩。卡恩在ICCC演示后不久,瑟夫回到斯坦福大学担任教授。

Vint Cerf was born in 1943 in New Haven, Connecticut. He graduated from Stanford University with a bachelor's degree in mathematics before joining IBM. After two years, he decided to continue his studies at UCLA, where he first received his master's degree and then his doctorate. At UCLA, Cerf began working on ARPANET. It was there that he first met Bob Kahn. Shortly after Kahn's ICCC demonstration, Cerf returned to Stanford as a professor.

1974年,卡恩和瑟夫合作发表了一份关于互联网问题解决方案的草图。在这份草图中,他们提出了一个网络中所有计算机都必须遵循的总体协议。该协议定义了一组消息和相关行为,使计算机能够跨技术差异巨大的网络进行通信。协议是允许计算机交互的、经过协商的消息序列。例如,在人类世界中,我们用“你好”开始对话,用“再见”结束对话。每个人都知道这些标准消息的含义以及接下来该做什么。

Working together, Kahn and Cerf published a sketch of the solution to the internetworking problem in 1974. In it, they proposed an overarching protocol that all computers in a network must follow. The protocol defined a set of messages and associated behaviors that would allow computers to communicate across technologically disparate networks. A protocol is an agreed-upon sequence of messages that allows computers to interact. In the human world, for example, we use "Hello" to start a conversation and "Goodbye" to end it. Everyone knows what the standard messages mean and what to do next.

传输控制协议/互联网协议 (TCP/IP) 的发明者鲍勃·卡恩 (Bob Kahn)(左)和文特·瑟夫 (Vint Cerf)。

Bob Kahn (left) and Vint Cerf, the inventors of the Transmission Control Protocol/Internet Protocol (TCP/IP).

在处理其他网络爱好者的反馈后,他们的提纲逐渐成型,最终形成了一份详细的规范。这份规范成为了传输控制协议/互联网协议 (TCP/IP) 的首个描述。瑟夫和卡恩相信,TCP/IP 将解决连接不同网络的问题。

As they processed responses from other networking enthusiasts, their outline gained momentum, leading to a detailed specification. That specification became the first description of the Transmission Control Protocol/Internet Protocol (TCP/IP). Cerf and Kahn believed that TCP/IP would solve the problem of connecting disparate networks together.

TCP/IP 的首次测试于 1976 年 8 月 27 日进行。一台安装在斯坦福研究所一辆面包车(昵称“面包车”)上的计算机停在旧金山南部,通过有线线路与南加州大学的 ARPANET 节点进行了通信。此次演示证明了 TCP/IP 能够在无线网络和有线网络之间实现消息交换。

The first test of TCP/IP came on August 27, 1976. A computer installed on a Stanford Research Institute van, affectionately nicknamed "the bread van," parked south of San Francisco, communicated with an ARPANET node connected by a hardwire at the University of Southern California. The demonstration proved that TCP/IP enabled the exchange of messages between wireless radio networks and wired networks.

次年,在三个网络上进行了通信测试。这次,挪威和英国的节点通过跨大西洋卫星连接与美国计算机组成网络。对瑟夫来说,这次三网测试具有决定性意义——它确保了互联网通过TCP/IP协议的正确运行。这项于1977年11月22日进行的实验宣告了互联网的诞生。

The following year, communication was tested across three networks. This time, nodes in Norway and the United Kingdom formed a network with American computers via a transatlantic satellite connection. For Cerf, this three-network test was decisive – the correct internet operation via TCP/IP. The experiment, conducted on November 22, 1977, announced the dawn of the Internet.

如今,TCP/IP 是大多数计算机在互联网上发送和接收消息的协议。对于用户来说,TCP/IP 最直观的元素是计算机节点命名的全球惯例。IP 地址由四个用句点分隔的数字组成。例如,Google 搜索页面的 IP 地址是 172.217.11.174。后来,为了方便起见,添加了节点的文本名称。域名系统会将这些文本名称转换为数字 IP 地址。例如,域名google.com被转换为 IP 地址 172.217.11.174。

Today, TCP/IP is the protocol by which most computers send and receive messages on the Internet. For the user, the most visible element of TCP/IP is the worldwide convention for naming computer nodes. An IP address consists of four numbers separated by periods. For example, the IP address of the Google search page is 172.217.11.174. Later, text names for nodes were added for convenience. The domain name system converts these text names to the numeric IP addresses. For example, the domain name google.com is translated to the IP address 172.217.11.174.

1983年,最初的ARPANET通信协议NCP被TCP/IP取代。与此同时,Dijkstra的短路径算法被用来绘制数据包的路由(参见 第六章)。讽刺的是,用于寻找城市间最短路径的算法,如今却被更频繁地用于确定数据包在互联网上传输的最快路径。

In 1983, the original ARPANET communications protocol, NCP, was replaced by TCP/IP. At the same time, Dijkstra's short-path algorithm was used to map packet routes (see Chapter 6 ). Ironically, the algorithm for finding the shortest route between cities is now used many times more often to determine the fastest route for data packets traversing the Internet.

ARPANET 于 1990 年正式退役。那时,它只是全球众多互联网络中的一个。美国互联网的骨干网络是美国国家科学基金会 (NSFnet) 设立的项目。ARPANET 的消亡几乎没有引起人们的关注。同年,计算机网络的先驱利克莱德去世。

ARPANET was officially decommissioned in 1990. By then, it was just one of many networks in a global collection of interconnected networks. The backbone of the Internet in the US was now NSFnet, a project set up by the National Science Foundation. ARPANET's demise went largely unnoticed. Licklider, the original visionary of computer networking, died that same year.

1986年,前BBN员工鲍勃·卡恩创立了国家研究计划公司(CNRI)。CNRI致力于开展、资助和支持前瞻性信息技术研究。1992年,他与温特·瑟夫共同创立了互联网协会,以推广TCP/IP协议。瑟夫继续致力于互联网事业,担任过一系列企业和非营利组织的职务。或许最引人注目的是,他被任命为谷歌首席互联网推广官。美国国家航空航天局(NASA)也曾就星际互联网计划咨询瑟夫。瑟夫和卡恩于2004年荣获ACM图灵奖。

In 1986, former BBN employee Bob Kahn founded the Corporation for National Research Initiatives (CNRI). CNRI conducts, funds, and supports research in forward-looking information technology. Together with Vint Cerf, he founded the Internet Society in 1992 to promote TCP/IP. Cerf continued to work on the Internet, holding a long list of corporate and nonprofit positions. Perhaps most notably, he was appointed Chief Internet Evangelist at Google. NASA also consulted Cerf on plans for an interplanetary Internet. Cerf and Kahn received the ACM Turing Award in 2004.

TCP/IP 使全球分散的计算机网络能够协同工作。互联网没有中央管理员。只要计算机遵循 TCP/IP 协议和命名约定,就可以加入网络。2005 年至 2018 年间,互联网用户数量达到 39 亿,超过全球人口的一半。而且,这个数字似乎还在持续增长。

TCP/IP enabled a global patchwork of disparate computer networks to work together. There is no central administrator of the Internet. As long as computers adhere to TCP/IP protocols and naming conventions, they can join the network. Between 2005 and 2018, the Internet had 3.9 billion users – more than half the world’s population. That number only seems to be growing.

由于 TCP/IP,人类的联系比以往任何时候都更加紧密。

Thanks to TCP/IP, humanity is more connected than ever.

错误修复

Error repair

诸如互联网之类的通信系统旨在将消息的精确副本从发送方传输到接收方。为此,数据包中的数据被转换为电子信号,然后从发送方发送到接收方。目标设备将接收到的信号转换为数据。然而,接收到的信号常常受到电子噪声的污染。噪声是任何会降低预期信号质量的不需要的信号的总称。噪声可能来自自然源或附近电子设备的干扰。如果噪声相对于信号足够强,则可能导致信号转换为数据时出现错误。错误显然是不受欢迎的。句子中的错误可能是可以接受的。但银行存款余额中的错误则不行,除非它是对你有利的错误!因此,通信系统必须包含某种错误检测和纠正算法。

Communications systems such as the Internet are designed to transmit exact copies of messages from the sender to the receiver. To achieve this, the data in the packet is converted into an electronic signal that is sent from the sender to the receiver. The destination device converts the received signal into data. However, often the received signal is contaminated by electronic noise . Noise is the general term for any unwanted signal that degrades the intended signal. Noise can come from natural sources or interference from nearby electronic equipment. If the noise is strong enough relative to the signal, it can cause errors in the conversion of the signal into data. Errors are clearly undesirable. An error in a sentence may be acceptable. An error in your bank balance will not be, unless it is an error in your favor! For this reason, communications systems must incorporate some kind of error detection and corrective algorithms.

检查和纠正错误的最简单方法是重复。为了确保正确传输,可以连续发送一个重要的数据包三次。接收方会比较所有三个副本。如果匹配,则可以假定没有发生错误。如果只有两个副本匹配,则可以假定第三个有错误的副本就是错误的副本。这两个匹配的副本被认为是正确的。如果所有副本都不匹配,则真实消息无法识别,必须请求重传。

The simplest way to check and correct an error is repetition. If you want to be sure of the correct delivery, you can send an important packet of data three times in a row. The receiver compares all three copies. If they match, he can assume that no error has occurred. If only two copies match, you can assume that the third copy with an error is the one with an error. The two matching copies are assumed to be correct. If none of the copies match, the true message is unknown and must be requested to be retransmitted.

例如,如果收到的错误保护消息是:

For example, if the error-protected message received is:

HELNO,HFLLO,HELLP

HELNO, HFLLO, HELLP

那么原文很可能是 HELLO,因为 H 的匹配,两个 E 击败了一个 F,接下来的三个 L 的匹配,两个 L 击败了一个 P,两个 O 击败了一个 P。

then it is likely that the original was HELLO since the H's match, two Es beat one F, the next three L's match, two L's beat, and two Os beat one P.

重复机制效果很好。然而,如果每个数据包必须发送三次,效率就会非常低。这样一来,每秒可发送的数据包数量就只有添加错误保护之前的三分之一了。

Repetition works well. However, it is very inefficient if each packet has to be sent three times. The number of packets that can be sent per second is then one third of what was possible before the error protection was added.

校验和效率更高。其原理是将所有字符(字母、数字符号)转换为数字。将这些数字相加,得出的总和(即校验和)会随消息一起发送。接收到数据包后,计算机会重新计算校验和,并将计算结果与数据包中的校验和进行比较。如果计算出的校验和与接收到的校验和匹配,则很可能接收到的数据包没有错误。当然,数据中也可能出现两个相同但相反的错误,或者校验和与数据中存在完全相同的错误。然而,这些情况极少发生。通常,错误的校验和表示发生了传输错误。例如,将 HELLO 转换为整数会得到:

Checksums are much more efficient. The idea is that all the characters (letters, numbers , and symbols) are converted to numbers. These numbers are added together and the total – the checksum – is sent with the message. When the packet is received, the computer recalculates the checksum and compares the result of that calculation with the checksum included in the packet. If the calculated and received checksums match, then it is very likely that the received packet is error-free. Of course, it is possible that two identical but opposite errors have occurred in the data, or that the checksum and the data suffer from exactly the same errors. However, these contingencies are extremely unlikely. Usually, an incorrect checksum indicates that a transmission error has occurred. For example, converting HELLO to integers gives:

8 5 12 12 15 – 52。

8 5 12 12 15 – 52.

如果传输过程完美无缺,接收方就会收到一份与消息完全相同的副本。接收方计算校验和,结果为 52。这与数据包中的校验和相符,因此一切正常。

If the transmission is flawless, the receiver receives an exact copy of the message. It calculates the checksum and gets 52. That matches the checksum in the packet, so all is well.

如果第一个字符被错误地接收为 F 怎么办?

What if the first character is incorrectly received as an F?

这次计算出的校验和(50)与数据包末尾的校验和(52)不匹配。接收方知道发生了错误。

This time the calculated checksum (50) does not match the checksum at the end of the packet (52). The receiver knows that an error has occurred.

校验和更为常见。例如,本书背面的 ISBN (国际标准书号)就包含一个校验和。1970 年后印刷的所有书籍都有一个唯一标识书名的 ISBN 号。目前的 ISBN 号长度为十三位,最后一位是校验和。借助校验和,计算机可以确定 ISBN 号是否被正确输入或扫描。

Checksums are more common. For example, the ISBN (International Standard Book Number ) on the back of this book contains a checksum. All books printed after 1970 have an ISBN number that uniquely identifies the title. Current ISBN numbers are thirteen digits long and the last digit is a checksum. Thanks to the checksum, computers can determine whether the ISBN number has been typed or scanned correctly.

数学家理查德·汉明(1915-1998)于 1938 年在贝尔电话实验室发明了纠错码等。

The mathematician Richard Hamming (1915-1998) invented, among other things, the error-correcting codes in the laboratories of Bell Telephone, 1938.

基本校验和最多只能检测出错误。根本无法确定哪个数字是错误的。错误甚至可能出在校验和本身,而讽刺的是,消息本身却是正确的。基本校验和需要重新传输消息才能修复错误。

A basic checksum detects errors at best. It is impossible to figure out which number is wrong. The error may even be in the checksum itself, and then it is ironic that the message itself is correct. Basic checksums require retransmission of the message to fix the error.

理查德·汉明 (Richard Hamming) 想知道是否可以修改校验和以除了识别错误之外还提供错误纠正。

Richard Hamming wondered whether checksums could be modified to provide error correction in addition to identifying errors.

汉明1915年出生于芝加哥,学习数学,最终在伊利诺伊大学获得博士学位。二战结束后,汉明在洛斯阿拉莫斯为曼哈顿计划工作。他自称是一名“计算机管理员”,用IBM可编程计算器为核物理学家进行计算。后来,他感到失望,前往新泽西州的贝尔电话实验室工作。贝尔实验室是迅速发展的贝尔电话公司的研究部门,该公司由电话发明者亚历山大·格雷厄姆·贝尔于1877年创立。在20世纪40年代末和60年代,汉明 五十岁时,贝尔实验室聘请了一批明星级的通信研究人员。哈明感觉如鱼得水:

Born in Chicago in 1915, Hamming studied mathematics and eventually received his doctorate from the University of Illinois. At the end of World War II, Hamming found himself working for the Manhattan Project in Los Alamos. He worked, as he describes it, as a "computer janitor," performing calculations on programmable IBM calculators for the nuclear physicists. Disillusioned, he then went to work for Bell Telephone Laboratories in New Jersey. Bell Labs was the research arm of the rapidly growing Bell Telephone Company, founded in 1877 by Alexander Graham Bell, the inventor of the telephone. In the late 1940s and the 1960s, Hamming was fifty, Bell Labs employed a star cast of communications researchers. Hamming felt like a fish in water:

我们是顶级的麻烦制造者。我们用不同寻常的方式做着不同寻常的事情,却仍然取得了宝贵的成果。所以管理层不得不容忍我们,大多数时候都放任我们不管。

We were troublemakers of the highest order. We did unusual things in unusual ways and still got valuable results. So the management had to tolerate us and left us alone most of the time.

他因糟糕的笑话而臭名昭著,并不是每个人都欣赏哈明斯的做事方式:

He was notorious for his bad jokes, and not everyone appreciated Hammings' way of doing things:

与他共事非常困难,因为他话很多,但很少倾听。

He is very difficult to work with because he talks a lot and hardly listens.

汉明对纠错的兴趣源于他自己在使用一台不可靠的基于继电器的计算机时遇到的挫败感。他经常在周末运行一个程序,结果周一早上发现由于计算机错误,程序运行失败了。汉明非常恼火,他想知道这台机器是否可以被编程来查找并纠正自身的错误。

Hamming's interest in error correction arose from his own frustrations with working with an unreliable relay-based computer. All too often he would run a program over the weekend only to discover on Monday morning that the job had failed due to a bug in the computer. Irritated, Hamming wondered if the machine could be programmed to find and correct its own errors.

校验和最简单的形式是奇偶校验位。现代电子计算机以二进制数的形式处理信息。与十进制数不同,二进制数只使用两位数字:0 和 1。十进制数中,每一列的值是其右侧列值的十倍;而二进制数中,每一列的值是其右侧列值的两倍。因此,在二进制中,从小数点开始从右到左依次为 1、2、4、8、16 等等。例如:

The simplest form of checksum is the parity bit . Modern electronic computers process information as binary numbers. Unlike decimal numbers, binary numbers use only two digits: zero and one. Whereas in decimal numbers each column is worth ten times the value of the column to the right, in binary each column is worth twice as much. Therefore, in binary, moving from right to left from the decimal point, we have ones, twos, fours, eights, sixteens, and so on. For example:

1011 二进制 = (1 × 8) + (0 × 4) + (1 × 2) + (1 × 1) =

1011 binary = (1 × 8) + (0 × 4) + (1 × 2) + (1 × 1) =

十进制 11。

11 decimal.

类似地,从一到十五的二进制计数遵循以下序列:

Similarly, binary counting from one to fifteen works with the following sequence:

1、10、11、100、101、110、111、1000、1001、1010、1011、1100、1101、1110、1111.

1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111.

因此,四个二进制数字或位可以表示从一到十五的十进制整数。

Four binary digits, or bits, can thus represent the decimal integers from one to fifteen.

为了进行错误检测,可以将奇偶校验位添加到二进制数中。奇偶校验位的值(0 或 1)的选择应确保“1”的位数(包括奇偶校验位)为偶数。因此,代码字变为:

A parity bit can be added to a binary number for the purpose of error detection. The value of the parity bit (0 or 1) is chosen such that the total number of 1 bits, including the parity bits, is even. Thus, the code word becomes:

0 1 0 0 0 1

0 1 0 0 0 1

通过添加值为零的奇偶校验位来保护:

protected by adding a parity bit with the value zero:

0 1 0 0 0 1 – 0。

0 1 0 0 0 1 – 0.

这使得 1 的位数保持偶数(或两个 1 的位数)。

That keeps the number of 1-bits even (or two 1-bits).

与校验和一样,奇偶校验位与码字(即数据位序列)一起发送。为了检查错误,接收方只需计算“1”的数量即可。如果总和为偶数,则可以假定没有发生错误。如果总和为奇数,则很可能其中一位出错。0 被错误地更改为 1,反之亦然。例如,第二位出错将产生如下字:

As with checksums, the parity bit is sent with the code word, or sequence of data bits. To check for errors, the receiver simply counts the number of 1s. If the total sum is even, then it can be assumed that no error has occurred. If the sum is odd, then in all probability one of the bits is in error. A 0 has been mistakenly changed to a 1, or vice versa. For example, an error in the second bit would produce the word:

这次,1 的位数为奇数,奇偶校验位表明发生了错误。

This time there is an odd number of 1 bits, and the parity bit betrays that an error has occurred.

这样,单个奇偶校验位就能检测到单个错误。如果两个校验位错误,数据包看起来是有效的,但实际上并非如此。例如:

In this way, a single parity bit can enable the detection of a single error. If two bits are wrong, the packet appears to be valid, but it is not. For example:

看起来正确,因为1的个数是偶数。这导致当错误率较高时,需要更多的奇偶校验位。

seems correct because there is an even number of 1's. This results in more parity bits being needed when there is a higher error rate.

汉明发明了一种巧妙的方法,利用多个奇偶校验位来检测和纠正单比特错误。在汉明的方案中,每个奇偶校验位保护了字。诀窍在于,奇偶校验位并非全部保护相同的数据位。这样,每个数据位都受到奇偶校验位的唯一组合保护。如果发生错误,可以通过检查哪些奇偶校验位受到影响来确定错误位置。只有一个数据位受到所有指示错误的奇偶校验位的保护。

Hamming developed a clever way to use multiple parity bits to detect and correct single bit errors. In Hamming's scheme, each parity bit protects half of the bits in theword. The trick is that the parity bits do not all protect the same bits of data. In this way, each bit of data is protected by a unique combination of parity bits. If an error occurs, its position can be determined by checking which parity bits are affected. There can only be one bit of data that is protected by all the parity bits that indicate errors.

假设发送一个由 11 位数据组成的代码字:

Let's say a code word consisting of eleven bits of data is sent:

1 0 1 0 1 0 1 0 1 0 1。

1 0 1 0 1 0 1 0 1 0 1.

在汉明方案中,11 位数据需要 4 个奇偶校验位。待确定值的奇偶校验位被插入到码字中,位置为 2 的幂(1、2、4 和 8)。因此,受保护的字变为:

In Hamming's scheme, eleven bits of data require four parity bits. The parity bits, whose values ​​are to be determined, are inserted into the code word at positions that are powers of two (1, 2, 4, and 8). Therefore, the protected word becomes:

??1 ?0 1 0 ?1 0 1 0 1 0 1,

? ? 1 ? 0 1 0 ? 1 0 1 0 1 0 1,

其中问号表示奇偶校验位的未来位置。第一个奇偶校验位是通过奇数位置的位(数字 1、3、5 等等)计算得出的。与之前一样,奇偶校验位的值的选择方式是,使组中 1 的个数为偶数。因此,第一个奇偶校验位设置为 1:

where the question mark indicates the future positions of the parity bits. The first parity bit is calculated over the bits in odd positions (numbers 1, 3, 5, and so on). As before, the value of the parity bit is chosen so that there is an even number of 1s in the group. Therefore, the first parity bit is set to 1:

圆圈表示奇偶校验组中的位。第二个奇偶校验位是根据二进制中两位为 1 的位(2、3、6、7 等)计算得出的:

The circles indicate the bits in the parity group. The second parity bit is calculated over the bits whose positions, when written in binary, have a 1 in the twos column (2, 3, 6, 7, and so on):

第三个奇偶校验位是根据二进制中四列中位置为 1 的位(4、5、6、7、12 等)计算得出的:

The third parity bit is calculated over the bits whose positions in binary have a 1 in the column of fours (4, 5, 6, 7, 12, and so on):

最后,计算第四个奇偶校验位,其位置 以二进制表示,第八列为 1(8、9、10、11 等):

Finally, the fourth parity bit is calculated over the bit whose positions written in binary, have a 1 in the eights column (8, 9, 10, 11, and so on):

这就是最后一个受保护的字,可以传输了。现在假设受保护的字在第三位出现错误:

This is then the last protected word, ready for transmission. Now imagine that the protected word has an error at bit position three:

接收方通过计算四个奇偶校验组中 1 的数量来检查字:

The receiver checks the word by counting the number of ones in the four parity groups:

第一和第二奇偶校验组均出现位错误(即,它们显示的1的数量为奇数)。相反,第三和第四组没有出现位错误(即,它们显示的1的数量为偶数)。唯一出现在第一和第二组中而不出现在第三和第四组中的数据位是位3。因此,错误一定发生在位3上。只需将其值从0更改为1,即可轻松纠正该错误。

The first and second parity groups both exhibit bit errors (that is, they display an odd number of ones). In contrast, the third and fourth groups exhibit no bit errors (that is, they have an even number of ones). The only bit of data that is in the first and second groups but not in the third and fourth groups is bit three. Therefore, the error must have occurred in bit number three. The error is easily corrected by changing its value from 0 to 1.

汉明码的巧妙算法能够检测并纠正部分错误,但代价是传输的总比特数略有增加。在本例中,四个奇偶校验位保护了十一位数据——比特数仅增加了36%。汉明码的创建和验证非常简单,使其成为高速处理的理想选择,例如计算机网络、内存和存储系统所需的处理。现代通信网络使用各种汉明码、基本校验和以及更新、更复杂的纠错码来确保数据传输的完整性。您的银行账户余额出现错误的可能性极小。

Hamming’s ingenious algorithm detects and corrects some errors at the cost of a small increase in the total number of bits transmitted. In the example, four parity bits protect eleven bits of data—a mere 36 percent increase in the number of bits. Hamming codes are remarkably simple to create and verify, making them ideal for high-speed processing, such as that required in computer networks, memory, and storage systems. Modern communications networks use a hodgepodge of Hamming codes, basic checksums, and newer, more complex error-correcting codes to ensure the integrity of data transmissions. A mistake in your bank balance is extremely unlikely.

在贝尔实验室工作了十五年后,哈明重返教学岗位,在加利福尼亚州蒙特雷的海军研究生院任职。1968年,他因其代码和其他数值分析方面的工作获得了ACM图灵奖。1998年,他在蒙特雷去世,距离他最终退休仅一个月。

After fifteen years at Bell Labs, Hamming returned to teaching, taking an appointment at the Naval Postgraduate School in Monterey, California.In 1968 he received the ACM Turing Award for his codes and other work on numerical analysis. He died in Monterey in 1998, just a month after finally retiring.

互联网的一大缺陷在于其设计之初并未充分考虑安全性。后来才引入了安全性,但效果好坏参半。一个问题是,传输过程中的数据包很容易被“窃听者”通过电子设备读取。加密技术可以绕过窃听,通过某种方式修改消息,使只有预期的接收者才能解密原始文本。窃听者仍然可以截取修改后的文本,但经过加密的消息将毫无意义。

One of the great flaws of the Internet is that it was not designed with security in mind. Security had to be built in later, with mixed results. One problem is that a packet in transit, en route , can easily be read by electronic devices by 'eavesdroppers'. Encryption circumvents eavesdropping by changing a message in such a way that only the intended recipient can decipher the original text. An eavesdropper can still intercept the changed text, but the scrambled message will be meaningless.

直到二十世纪末,加密算法都用于在通信前绝对保密地商定加密方法的情况。你可以想象女王在一次秘密会面中将一本绝密的密码本秘密交给间谍。但这种方法很难应用到计算机网络中。如果所有数据都必须通过一个易受攻击的公共网络发送,两台计算机如何秘密交换密码本?起初,在崭新的计算机网络世界中,加密似乎完全不切实际。

Until the late twentieth century, encryption algorithms were intended for scenarios in which the encryption method was agreed upon in absolute secrecy before the communication took place. You could imagine a queen secretly passing a top-secret codebook to a spy during a furtive meeting. But that approach is hard to translate to computer networks. How can two computers secretly exchange a codebook if all the data has to be sent across a vulnerable public network? At first, it seemed that encryption was utterly impractical in the brave new world of computer networks.

秘密信息

Secret messages

古代美索不达米亚、埃及、希腊和印度都使用加密技术进行信息传输。在许多情况下,加密的目的是为了安全地传输军事或政治机密。尤利乌斯·凯撒曾将其用于重要的私人通信。凯撒密码将原始密码中的每个字母替换为字母表中与原始字母有一定距离的另一个字母。为了使密码模式更难识别,凯撒密码会删除所有空格并将所有字母改为大写。将字母表右移一位,即可得到以下加密结果:

Encryption of messages was used in ancient Mesopotamia, Egypt, Greece and India. In many cases, the purpose was to securely transmit military or political secrets. Julius Caesar used it for important private correspondence. The Caesar cipher replaces each letter in the original code with another letter that is a certain distance away from the original letter in the alphabet. To make patterns harder to recognize, the Caesar cipher removes all spaces and changes all letters to uppercase. A shift in the alphabet one position to the right then gives the following encryption:

凯撒万岁

Hail Caesar

IFJMDBFTBR。

IFJMDBFTBR.

A 变成 B,E 变成 F,依此类推。任何 Z 都将被 A 替换,因为字母表末尾的移位会回到字母表开头。

An A becomes a B, an E changes to F, and so on. Any Z would be replaced by A, because the shift at the end of the alphabet goes back to the beginning.

秘密信息( 密文 )被发送给接收者。接收者通过将字母表中每个字母向左移动一位,即可获得原始文本(源文本 )。字母 B 变为字母 A,依此类推,最终得到原始消息“HEILCAESAR”。得益于自然语言的规律,缺失的空格出奇地容易推断出来。

The secret message – the ciphertext – is sent to the recipient. The recipient obtains the original text – the source text – by shifting each letter one space to the left in the alphabet. The B becomes an A and so on, yielding the original message ‘HEILCAESAR’. Thanks to the patterns in natural language, the missing spaces are surprisingly easy to deduce.

传统的加密方法(例如凯撒密码)基于算法和密钥密钥是成功加密和解密所必需的信息。在凯撒密码中,密钥是移位。发送者和接收者必须知晓算法和密钥。通常,通过保密密钥来维护安全性。

Traditional encryption methods such as the Caesar cipher are based on an algorithm and a secret key . The key is information that is necessary for successful encryption and decryption. In the Caesar cipher, the key is the shift. The algorithm and the key must be known to the sender and the intended recipient. Typically, security is maintained by keeping the key secret.

没有完美的密码方案。只要有足够的时间和巧妙的攻击,大多数密码都能被破解。凯撒密码可以通过频率分析来攻击。攻击者计算字母表中每个字母在密文中出现的次数。最常见的字母可能是字母 E 的替代字母,因为 E 是荷兰语中最常见的字母。只要知道一个移位,就可以破译整条消息。几乎所有密码都有弱点。问题是:“攻击需要多长时间?”如果攻击花费的时间长得令人无法接受,那么从实际角度来看,加密是安全的。

No cipher scheme is perfect. Given enough time and a clever attack , most ciphers can be broken. The Caesar cipher can be attacked using frequency analysis. The attacker counts the number of times each letter of the alphabet appears in the ciphertext. The most common letter is probably the replacement for the letter E, because E is the most common letter in Dutch. As soon as a single shift is known, the entire message can be deciphered. Almost all ciphers have weaknesses. The question is: 'How long does an attack take?' If the attack takes an unacceptably long time, then for all practical purposes the encryption is secure.

在计算机网络中,密钥分发是一个难题。传递密钥的唯一便捷方式是通过网络。然而,网络本身并不安全,容易被窃听。通过互联网发送密钥就等于将其公开。如果发送者和接收者只能在公共场合发送消息,他们又如何能就安全密钥达成一致呢?这个问题后来被称为密钥分发问题。20世纪70年代初,斯坦福大学的一个研究小组首次提出了解决方案。

In computer networks, key distribution is a problem. The only convenient way to pass a key is through the network. However, the network is not secure from eavesdropping. Sending a secret key over the Internet is tantamount to making it public. How can a sender and receiver possibly agree on a secure key if they can only send messages in public? This question became known as the key distribution problem. The first glimpse of a solution was provided by a group working at Stanford in the early 1970s.

马丁·赫尔曼1945年出生于纽约。他在纽约大学学习电气工程,之后前往加州斯坦福大学攻读硕士和博士学位。在IBM和麻省理工学院工作数年后,他回到了斯坦福大学助理教授。他不顾同事的建议,开始研究密钥分发问题。当时大多数人认为,发现一些全新的东西有些冒昧——而资源充足的美国国家安全局(NSA)却忽视了这一点。赫尔曼没有气馁。他想另辟蹊径。1974年,惠特菲尔德·迪菲(Whitfield Diffie)加入了赫尔曼的行列,共同寻找解决方案。

Martin Hellman was born in New York in 1945. He studied electrical engineering at New York University before moving to California to pursue his master's degree and doctorate at Stanford. After working for IBM and MIT for several years, he returned toStanford as an assistant professor. Ignoring the advice of colleagues, he began working on the key distribution problem. Most thought it was presumptuous to discover something radically new – something that the well-resourced US National Security Agency (NSA) had overlooked. Hellman was not deterred. He wanted to do things differently than others. In 1974, Hellman was joined in the hunt for a solution by Whitfield Diffie.

迪菲1944年出生于华盛顿特区,毕业于麻省理工学院数学系。毕业后,他先后在MITRE公司和母校担任程序员。然而,他对密码学却十分着迷。他开始独立研究密钥分发。在纽约州北部IBM的托马斯·J·沃森实验室参观时,他得知斯坦福大学一位名叫赫尔曼的研究员也在研究类似的研究。迪菲驱车3000英里穿越美国,只为与这位志同道合的人见面。下午的半小时会面一直持续到深夜。两人从此结下了不解之缘。

Diffie, born in Washington DC in 1944, had a degree in mathematics from MIT. After graduating, he worked as a programmer at MITRE Corporation and at his alma mater. However, he was fascinated by cryptography. He began his own independent research into key distribution. While visiting IBM’s Thomas J. Watson Laboratory in upstate New York, he learned that a guy named Hellman was working on similar things at Stanford. Diffie drove 3,000 miles across the US to meet the man who shared his passion. A half-hour meeting in the afternoon stretched into the night. A bond was formed.

两人的助手是博士生拉尔夫·默克尔 (Ralph Merkle)。默克尔出生于 1952 年,在加州大学伯克利分校读书期间,曾设计出一种解决密钥分发问题的新方法。

The duo was assisted by PhD candidate Ralph Merkle. Merkle, born in 1952, had previously devised a new approach to the key distribution problem as a student at the University of California, Berkeley.

1976年,迪菲和赫尔曼发表了一篇论文,描述了最早的公钥交换实用算法之一。这篇论文预示着密码学的一场革命。所有密钥都必须保密的神话被打破了。一种新的加密形式诞生了:公钥密码学,又称 非对称密码学。

In 1976, Diffie and Hellman published a paper describing one of the first practical algorithms for public key exchange. The paper would herald a revolution in cryptography. The myth that all keys had to be kept private was shattered. A new form of encryption was born: public-key cryptography , or asymmetric cryptography.

Diffie-Hellman-Merkle 密钥交换协议展示了双方如何使用公开消息获取密钥。然而,该方法存在一个问题。它需要交换和处理多条消息。这使得它在网络上使用起来不太理想。不过,他们在论文中提出了一种替代方案。

The Diffie-Hellman-Merkle key exchange protocol showed how two parties could obtain a secret key using public messages. However, there was a catch. Their method required the exchange and processing of multiple messages. This made it less than ideal for use on a network. However, in their paper they proposed an alternative.

传统加密算法使用对称密钥,这意味着加密和解密使用同一个密钥。对称加密的缺点是密钥必须始终保密。这一要求导致了密钥分发问题。

Traditional encryption algorithms use a symmetric key, meaning that the same key is used for both encryption and decryption. The disadvantage of symmetric encryption is that the key must be kept secret at all times. This requirement caused the key distribution problem.

相比之下,公钥密码学使用两个密钥:一个密钥用于加密消息,另一个密钥用于非对称密钥——解密密钥。这对密钥必须满足两个要求。首先,它们必须能够作为加密-解密密钥成功协同工作。也就是说,用一个密钥加密,用另一个密钥解密,可以生成原始消息的副本。其次,必须不可能从加密密钥推导出解密密钥。这就是公钥密码学的魅力所在。如果无法从加密密钥推导出解密密钥,那么加密密钥就可以毫无问题地公开;它就是公钥。只有解密密钥需要保密,那就是私钥。任何人都可以使用公钥向私钥持有者发送秘密消息。只有拥有私钥的接收者才能解密并阅读秘密消息。

In contrast, public-key cryptography uses two keys: one key for encrypting the message and the other –asymmetric – key for decryption. The pair of keys must meet two requirements. First, they must work together successfully as an encryption-decryption pair. That is, encryption with one and decryption with the other produces a copy of the original message. Second, it must be impossible to derive the decryption key from the encryption key. Therein lies the beauty of public-key cryptography. If the decryption key cannot be determined from the encryption key, then the encryption key can be made public without any problems; it is the public key. Only the decryption key needs to be kept secret, and that is the private key. Anyone can use the public key to send a secret message to the holder of the private key. Only the recipient who has the private key can decrypt and read the secret message.

假设 Alice 想要接收加密消息。她使用一种算法(密钥生成器)创建一对非对称密钥对。她自己保留解密密钥(私钥),并通过互联网公开加密密钥。假设 Bob 想向 Alice 发送一条秘密消息。他从 Alice 的互联网消息中获取了 Alice 的公钥。他用公钥加密自己的消息,然后将生成的密文发送给 Alice。Alice 收到密文后,用自己的私钥解密。

Suppose Alice wants to be able to receive encrypted messages. She creates an asymmetric key pair using an algorithm, the key generator. She keeps the decryption key, the private key, for herself and makes the encryption key public via the Internet. Let's say Bob wants to send a secret message to Alice. He obtains Alice's public key from her message on the Internet. He encrypts his message with it and then sends the resulting ciphertext to Alice. When Alice receives that text, she decrypts it with her private key.

简而言之:

In short:

Alice 创建一对密钥,一个用于加密,一个用于解密。

Alice creates a pair of keys, one for encryption and one for decryption.

爱丽丝将解密密钥保留给自己。

Alice keeps the decryption key to herself.

Alice 将加密密钥公开。

Alice makes the encryption key public.

Bob 使用 Alice 的公钥加密消息。

Bob encrypts a message using Alice's public encryption key.

鲍勃将加密消息发送给爱丽丝。

Bob sends the encrypted message to Alice.

爱丽丝用她的秘密解密密钥解密了加密消息。

Alice deciphers the encrypted message with her secret decryption key.

这个方案运行良好,但有一个问题:私钥必须无法从公钥推导出来。问题就在这里。没有人知道如何创建非对称密钥,使得解密密钥无法从加密密钥推导出来。我们需要的是一个单向函数——一种输入无法轻易从输出推导出来的计算。如果能找到这样的函数,输出将构成公钥的基础,输入将构成私钥的基础。这样就无法逆转计算。攻击者也无法破解解密密钥。

That scheme worked fine, with one caveat. There had to be no way for the private key to be derived from the public key. Therein lay the rub. No one knew how to create asymmetric keys where the decryption key could not be derived from the encryption key. What was needed was a one-way function —a computation whose input could not be easily derived from its output. If such a function could be found, the output would form the basis of the public key and the input would form the basis of the private key. There would be no way to reverse the computation. Attackers would have no way to figure out the decryption key.

公钥密码学

PUBLIC KEY CRYPTOGRAPHY

Diffie 和 Hellman 的论文描述了公钥加密,但没有提供单向函数。这个概念很有启发,但他们却找不到实现它的方法。

Diffie and Hellman's paper described public key encryption but did not offer a one-way function. The concept was inspiring, but they could not find a way to make it work.

在波士顿麻省理工学院的计算机科学实验室里,罗纳德·里维斯特(Ronald Rivest)怀着越来越激动的心情阅读了迪菲-赫尔曼(Diffie-Hellman)的论文。就在那时,他决定开始寻找一个合适的单向函数,一个能够解密公钥加密的函数。里维斯特说服了两位朋友兼同事阿迪·沙米尔(Adi Shamir)和伦纳德·阿德尔曼(Leonard Adleman)来帮助他进行研究。三人都拥有数学学士学位和计算机科学博士学位。里维斯特(生于1947年)来自纽约州北部,阿迪·沙米尔(生于1952年)来自以色列特拉维夫,阿德尔曼(生于1945年)在旧金山长大。这个由临时人员组成的团队 花了一年时间开发一些很有前景的单向函数,结果却一个接一个地被否决了。这些函数实际上都无法在单向函数中工作。或许单向函数这种东西根本就不存在。

At the MIT computer science lab in Boston, Ronald Rivest read the Diffie-Hellman paper with growing excitement. It was then that he decided to begin the hunt for a suitable one-way function, one that would unlock the public-key encryption. Rivest persuaded two friends and colleagues, Adi Shamir and Leonard Adleman, to help him in the search. All three had bachelor's degrees in mathematics and doctorates in computer science. Rivest (b. 1947) was from upstate New York, Adi Shamir (b. 1952) was from Tel Aviv, Israel, and Adleman (b. 1945) grew up in San Francisco. The team of occaisionaries spent a year developing promising ideas for one-way functions, only to reject them one by one. None of them really worked in one direction. Maybe such a thing as a one-way function didn't exist at all.

1977年复活节,三人去拜访一位朋友。里维斯特回家后辗转难眠。他焦躁不安,思绪不断回到单向加密问题上。过了一会儿,他突然想到了一个或许可行的新函数。黎明前,他把所有想法都记了下来。第二天,他请阿德尔曼找出他方案中的漏洞——就像阿德尔曼对其他所有建议所做的那样。奇怪的是,阿德尔曼竟然没找到任何漏洞。这个方法似乎能够抵御攻击。他们找到了一个单向函数。同年晚些时候,里维斯特、沙米尔和阿德尔曼的密钥生成算法发表了。它很快被称为RSA算法,以他们姓氏的首字母命名。RSA如今已成为互联网加密技术的基石。

The trio were visiting a friend at Easter 1977. When Rivest returned home, he could not sleep. Restlessly, he let his thoughts return to the one-way encryption problem. After a while, he hit upon a new function that might work. He wrote the whole thing down before dawn. The next day, he asked Adleman to find a flaw in his scheme—just as Adleman had done with every other suggestion. Curiously, Adleman could find no flaw. The method seemed to be resistant to attack. They had found a one-way function. Later that year, Rivest, Shamir, and Adleman's key-generating algorithm was published. It quickly became known as the RSA algorithm, after the initials of their last names. RSA is now a cornerstone of encryption on the Internet.

使用 RSA 进行加密和解密相当简单。加密密钥由两个数字组成——一个模数和一个加密指数。解密密钥也由两个数字组成——相同的模数和一个唯一的解密指数。

Encryption and decryption with RSA is fairly straightforward. The encryption key consists of two numbers – a modulus and an encryption exponent. The decryption key also consists of two numbers – the same modulus and a unique decryption exponent.

首先,将原始文本消息转换为一系列数字。对数字组进行编码的方式如下:

To begin, the original text message is converted into a series of numbers. Encoding is applied to groups of numbers as follows:

计算输入数的编码指数的幂。

Calculate the input number to the power of the encoding exponent.

计算该数除以模数后的余数。

Calculate the remainder after dividing this number by the modulus.

把剩下的交给我。

Deliver the rest.

解读:

To decipher:

计算接收到的数字的解密指数的幂。

Calculate the received number to the power of the deciphering exponent.

计算除以模数后的余数。

Calculate the remainder after dividing by the modulus.

把剩下的交给我。

Deliver the rest.

假设加密密钥为 (33, 7),消息为 4,解密密钥为 (33, 3)。计算 4 的 7 次方(或 4 乘以 7 次方)等于 16,384。将 16,384 除以 33 后,余数为 16。因此,16 就是密文。

Let's say the encryption key is (33, 7), the message is 4, and the decryption key is (33, 3). Calculating 4 to the power of 7 (or 4 multiplied by itself seven times) gives 16,384. After dividing 16,384 by 33, the remainder is 16. So 16 is the ciphertext.

要解密它,计算 16 的 3 次方,即 4096。4096 除以 3 后的余数为 4。结果 4 就是原始消息。

To decipher it, calculate 16 to the power of 3, or 4096. The remainder after dividing 4096 by 3 is 4. The result, 4, is the original message.

那么,这个方案是如何运作的呢?这个过程依赖于 模运算, 这是我们在时钟中使用的一种运算方法。你可能见过一条数轴——一条假想的线,所有整数均匀分布,就像一把尺子。这条数轴从零开始,延伸到无穷大。现在假设线上只有33个数字(0 – 32)。把这条缩短的线卷成一个圆圈。这个圆圈看起来就像一个老式钟面,上面标有0到32的数字。

So how does this scheme work? The process depends on modular arithmetic, a method of arithmetic that we use in clocks. You may have come across a number line – an imaginary line with all the integers laid out evenly, like a ruler. Starting with zero, the number line extends to infinity. Now imagine that there are only 33 numbers on the line (0 – 32). Roll this shortened line up into a circle. The circle then looks like the face of an old-fashioned clock marked with the numbers 0 to 32.

假设你从零开始绕着钟数数,最终数到32,然后又回到0、1、2……你继续绕着钟面数。

Suppose you start counting around the clock, starting at zero. Eventually you get to 32 and then the counting returns to 0, 1, 2… You keep going around the clock face.

模运算模拟了余数运算的效果。34 除以 33 得到的余数为 1。这相当于时钟绕了一圈,然后又多走了一步。

Modular arithmetic mimics the effect of the remainder operation. Dividing 34 by 33 gives a remainder of 1. That is the same as going around the clock once and then taking an extra step.

在本例中,加密过程使时钟指针在表盘上旋转 16,384 步。最后,指针读数为 16:即密文。解密过程从 0 开始,使指针在表盘上旋转 4,096 步。最后,时钟读数为 4:即原始消息。

In the example, encryption moves the clock hand 16,384 steps around the face. At the end, the hand reads 16: the ciphertext. Decryption starts at 0 and moves the hand 4,096 steps around the face. At the end, the clock reads 4: the original message.

加密和解密的密钥是互补的。密钥对经过特殊选择,使得一个指数会抵消另一个指数的影响。表盘旋转的圈数并不重要。最终,指针指向的数字才是关键。

The keys for encryption and decryption are complementary. The key pair is specially chosen so that one exponent cancels the effect of the other. The number of complete turns around the dial does not matter. In the end, it is the number that the hand is pointing to that matters.

密钥对由 RSA 密钥生成器算法生成。这是 RSA 加密的核心。前两个步骤包含单向函数:

The key pair is formed by the RSA key generator algorithm. This is the heart of RSA encryption. The first two steps contain the one-way function:

取两个值相近的大素数。

Take two large prime numbers of similar value.

将它们相乘即可得到模数。

Multiply these together to get the modulus.

从每个素数中减去 1。

Subtract 1 from each prime number.

将结果相乘得到总数。

Multiply the results to get the total.

选择 1 和总数之间的一个素数作为加密指数。

Choose a prime number between 1 and the totient as the encryption exponent.

重复以下步骤:

Repeat the following steps:

选择一个常数值。

Choose a constant value.

计算该常数乘以总数并加一。

Calculate that constant times the total and add one.

计算该数字除以加密指数。

Calculate that number divided by the encryption exponent.

当结果为整数时停止迭代。

Stop iterating when the result is an integer.

将解密指数设置为整​​数。

Set the deciphering exponent equal to the integer.

提供加密密钥(模数和加密指数)。

Provide the encryption key (modulus and encryption exponent).

提供解密密钥(模数和解密指数)。

Provide the decryption key (modulus and decryption exponent).

该算法很复杂,但让我们尝试一个例子。假设我们从素数 3 和 11 开始。它们太小,不足以抵御攻击,但作为例子是没问题的。模数为 3 × 11 = 33。全等值为 (3 – 1) × (11 – 1) = 20。我们选择 7 作为加密指数,因为它是介于 1 和全等值之间的素数。取常数 1,则 1 + 1 × 20 = 21。解密指数为 21 除以 7,即 3。加密密钥为 (33, 7),解密密钥为 (33, 3)。

The algorithm is complicated, but let's try an example. Suppose we start with the prime numbers 3 and 11. They are too small to be safe from attack, but they are fine as an example. The modulus is then 3 × 11 = 33. The totient is (3 – 1) × (11 – 1) = 20. We choose 7 as the encryption exponent because it is a prime number between 1 and the totient. Taking a constant value of 1, we have 1 + 1 × 20 = 21. The decryption exponent is then 21 divided by 7, or 3. The encryption key is then (33, 7) and the decryption key is (33, 3).

对该对的攻击涉及找到相乘得到模数的两个素数。乘法会掩盖所选的素数。对于较大的数字,有很多对素数可以相乘得到模数。攻击者必须尝试大量的素数才能破解密码。如果使用较大的模数,暴力搜索原始素数将耗费大量时间。

An attack on that pair involves finding the two primes that were multiplied together to get the modulus. Multiplication disguises the chosen primes. For large numbers, there are many pairs of primes that could have been multiplied together to get the modulus. An attacker would have to try a huge number of primes to crack the code. If a large modulus was used, a brute-force search for the original primes would take an inordinate amount of time.

密钥生成器算法中的其他步骤确保加密和解密是互逆的。也就是说,对于 0 到模数之间的所有值,解密都会撤销加密。

The other steps in the key generator algorithm ensure that the encryption and decryption are reciprocal. That is, decryption undoes the encryption for all values ​​between 0 and the modulus.

1977年,《科学美国人》杂志的一篇文章 向更广泛的读者介绍了RSA算法。文章称,任何能够根据加密密钥破解RSA密文的人都将获得100美元的奖金。该算法的模数相当大——有129位十进制数字。破解该密码耗时17年。获胜团队由来自世界各地的600名志愿者组成,他们自愿提供自己的电脑来帮忙,只要有空闲的计算时间。而解密后的明文却相当平淡无奇:

In 1977, an article in Scientific American introduced the RSA algorithm to a wider readership. It offered a prize of $100 to anyone who could crack an RSA ciphertext given an encryption key. The modulus was quite large—129 decimal digits. It took seventeen years for someone to crack the code. The winning team consisted of six hundred volunteers from around the world who volunteered their computers to help out if they had computing time to spare. The plaintext was rather uninspiring:

魔法词是 Squeamish Ossifrage

The Magic Words are Squeamish Ossifrage

ossifrage指的是胡兀鹫。100 美元的价格相当于每人 16 美分。(并捐赠给了自由软件基金会)。证明已经出来了。RSA 是军用级加密。

An ossifrage is a bearded vulture. The price of $100 came to 16 cents per person. (and was donated to the Free Software Foundation). The proof was in. RSA is a military-grade encryption.

公钥加密现已内置于万维网的安全套接字层 (SSL) 中。如果网站地址以“https:”为前缀,则表示您的计算机正在使用 SSL,因此会使用 RSA 算法与 Web 服务器通信。根据最近的一项调查,70% 的网站流量使用 SSL。多年来,为了防止密文被最现代化的超级计算机破解,密钥的长度不得不不断增加。如今,2048 位或更长(617 位十进制数字)的密钥已非常常见。

Public-key encryption is now built into the Secure Socket Layer (SSL) of the World Wide Web. If a website address is prefixed with "https:", your computer is using SSL and, therefore, the RSA algorithm to communicate with the web server. According to a recent survey, 70 percent of website traffic uses SSL. Over the years, the length of keys had to be increased to prevent the ciphertext from being cracked by the most modern supercomputers. Today, keys with 2048 or more bits (617 decimal digits) are common.

学者们证明了悲观主义者的错误。政府的电子监听系统或许可以在他们的地盘上被击败。或者至少看起来如此。

The academics had proven the pessimists wrong. Government electronic spying could be defeated on their own turf. Or so it seemed.

在RSA引发轩然大波之际,美国国家安全局局长公开表示,情报界一直都知道公钥加密技术。这引起了一些人的质疑。这种说法究竟是事实、虚张声势,还是纯粹的虚张声势?这激起了迪菲的好奇心。他进行了一番低调的调查,并被引荐到大西洋彼岸的政府通信总部(GCHQ)。政府通信总部是英国的电子情报和安全机构。二战期间,它曾领导了在布莱切利园破解德国密码的行动。迪菲通过他的联系人找到了两个人:克利福德·科克斯和詹姆斯·埃利斯。1982年,迪菲安排在切尔滕纳姆的一家酒吧与埃利斯见面。埃利斯是GCHQ的铁杆员工,他给他的唯一线索是一段神秘的文字:

Amid the fuss about RSA, the director of the US National Security Agency publicly stated that the intelligence community had always known about public-key encryption. This raised a few eyebrows. Was this claim factual, bravado, or pure bluff? It piqued Diffie’s curiosity. He made inconspicuous inquiries and was referred across the Atlantic to GCHQ. The Government Communication Headquarters was Britain’s electronic intelligence and security service. During World War II, it had led the efforts to crack German codes at Bletchley Park. Diffie managed to track down two names through his contacts: Clifford Cocks and James Ellis. In 1982, Diffie arranged to meet Ellis in a pub in Cheltenham. A stalwart GCHQ employee to the core, the only clue Ellis gave him was the cryptic:

您所做的比我们做的多得多。

You did much more with it than we did.

1997年,真相大白。英国政府通信总部(GCHQ)公布了考克斯、埃利斯和另一名雇员马尔科姆·威廉姆森的论文。其中一份文件由埃利斯撰写,概述了事件经过。他在文中提到了迪菲、赫尔曼和默克尔对公钥密码学的“重新发现”。

In 1997 the truth came out. GCHQ published papers by Cocks, Ellis and another employee, Malcolm Williamson. Among the documents was a summary of events written by Ellis. In it he refers to the 'rediscovery' of public-key cryptography by Diffie, Hellman and Merkle.

20世纪70年代初,詹姆斯·埃利斯(James Ellis)提出了公钥密码学的概念。他将这项技术命名为“非秘密加密”。埃利斯是一位工程师,却一直找不到合适的单向函数。克利福德·科克斯(Clifford Cocks)与尼克·帕特森(Nick Patterson)喝茶时,偶然听说了埃利斯的发现。科克斯是一位牛津和剑桥大学毕业的数学家,那天晚上他感到很无聊,于是决定研究一下单向加密问题。当天晚上,他就出色地解决了这个问题。与RSA团队一样,他得到了两个大素数的乘法。这比里维斯特(Rivest)、沙米尔(Shamir)和阿德勒曼(Adleman)早了四年。科克斯以英国政府通信总部(GCHQ)内部消息的形式传播了这个想法。马尔科姆·威廉姆森(Malcolm Williamson)读了这条消息,几个月后,他发现了密钥交换中缺失的一点。

In the early 1970s, James Ellis came up with the idea of ​​public-key cryptography. His name for the technique was 'non-secret encryption'. An engineer by trade, Ellis was unable to find a suitable one-way function. Clifford Cocks happened to hear of Ellis's discovery while having tea with Nick Patterson. Cocks, an Oxford- and Cambridge-educated mathematician, was bored that evening. He decided to study the one-way encryption problem. He solved it spectacularly that same evening. Like the RSA team, he arrived at the multiplication of two large prime numbers. This was four years before Rivest, Shamir and Adleman. Cocks circulated the idea in the form of an internal GCHQ message. Malcolm Williamson read the message and a few months later came up with a missing piece on key exchange.

英国政府通信总部(GCHQ)的密码破译员们在埃利斯、科克斯和威廉姆森的奇特方法中找不到任何破绽。但这并没有说服管理层。这些非机密的密码被束之高阁,被搁置在GCHQ的抽屉里。由于《官方保密法》的噤声,这些作者们只字未提。他们眼睁睁地看着斯坦福大学和麻省理工学院的团队独揽所有荣誉。埃利斯从未享受过公众认可带来的满足感。就在他论文禁令解除的几周前,他去世了。

The codebreakers at GCHQ could find no flaw in the unusual method of Ellis, Cocks and Williamson. But that did not convince the management. The unsecret coding languished in the desk drawers of GCHQ. Silenced by the Official Secrets Act, the authors said nothing. They watched from the sidelines as the teams at Stanford and MIT took all the credit. Ellis never enjoyed the satisfaction of public recognition. He died just weeks before the embargo on his papers was lifted.

Rivest、Shamir 和 Adleman 于 2002 年荣获 ACM 图灵奖。Diffie 和 Hellman 于 2015 年荣获该奖项。

Rivest, Shamir, and Adleman won the ACM Turing Award in 2002. Diffie and Hellman were honored as recipients of the award in 2015.

与此同时,互联网持续发展。到1985年,已有2000台主机(计算机域)连接到互联网。其中大部分由学术机构拥有。尽管数据传输运行良好,但20世纪80年代的网络程序缺乏吸引力。用户界面基于文本,单色,使用起来繁琐。为了覆盖更广泛的受众,计算机操作方式亟待革新。

Meanwhile, the Internet continued to grow. By 1985, there were 2,000 hosts (computer domains) connected to the Internet. Most of these were owned by academic institutions. Although data transport worked well, the network programs of the 1980s were unattractive. The user interface was text-based, monochrome, and cumbersome to use. To reach a broader audience, a renovation of computer operation was needed.

 

 

无需书籍,轻松学习。有了万维网,人们可以获取的信息量远超以往任何人所能阅读的量。像谷歌和必应这样的搜索引擎可以帮助你轻松找到所需信息。

Studying without books. With the World Wide Web, more information is accessible than anyone can ever read. Search engines like Google and Bing help you find the information you need without getting lost.

8

8

在网络上搜索

Googling on the web

Memex 是一种个人存储所有书籍、数据和通信的设备,它采用机械化设计,因此可以以闪电般的速度和灵活性检索和访问信息。

A Memex is a device in which an individual stores all of their books, data, and communications, and which is mechanized so that the information can be retrieved and accessed with lightning speed and flexibility.

[memex 的本质特征] 是一种可以使一个对象随意地立即自动选择另一个对象的功能。

[The essential feature of the memex] is a facility whereby one object can be caused to choose another immediately and automatically at will.

万尼瓦尔·布什

Vannevar Bush

《大西洋月刊》, 1945年

The Atlantic, 1945

到了20世纪70年代,小型计算机已在科研机构、大学和大型企业中广泛应用。这些小型计算机的高度和尺寸与美国冰箱相当,比老式大型计算机便宜得多,但仍然是一笔不小的投资。虽然小型计算机能够高效地处理大规模数据,但它们的用户友好性并不高。用户终端由单色显示屏和笨重的键盘组成。黑色背景上,固定的绿色字母和数字网格照亮了整个屏幕。每个操作都需要输入晦涩难懂的文本命令。

By the 1970s, minicomputers were well established in scientific institutes, universities, and large corporations. The minicomputer, comparable in height and size to an American refrigerator, was much cheaper than the old-fashioned mainframe, but still a considerable investment. Although effective at handling large-scale data processing, the machines were not user-friendly. User terminals consisted of a monochrome display and a bulky keyboard. A fixed grid of green letters and numbers illuminated a black background. Every action required an esoteric textual command.

1976年,两个来自加州的年轻人——史蒂夫·乔布斯和史蒂夫·沃兹尼亚克——将第一台成品微型计算机推向了当时毫无兴趣的市场。这标志着商用计算机的首次诞生,其体积小巧,甚至可以摆放在桌子上。事实上,Apple I 价格低廉,单人即可购买使用。次年,苹果公司又推出了升级版 Apple II。尽管 Apple II 体积小巧,但销量一直不佳,直到 VisiCalc 程序问世。

In 1976, two California kids – Steve Jobs and Steve Wozniak – launched the first ready-made microcomputer into an uninterested market. For the first time, there was a commercial computer small enough to sit on a desk. In fact, the Apple I was so cheap that it could be purchased and used by a single individual. Apple followed up the following year with an improved offering, the Apple II. Despite the device’s compact size, sales were slow until the advent of the VisiCalc program.

VisiCalc 是世界上第一个商业电子表格程序。VisiCalc 允许用户在屏幕上的表格中输入文本、数字和公式。其秘诀在于,VisiCalc 会在数字输入电子表格后立即自动执行公式指定的计算。无需编写程序即可完成一些计算。突然之间,企业用户可以随意操作销售数据,而无需致电计算机部门。人们购买 Apple II 电脑就是为了使用 VisiCalc。台式电脑市场因此蓬勃发展。

VisiCalc was the world's first commercial spreadsheet program. VisiCalc allowed users to enter text, numbers, and formulas into tables on the screen. The secret sauce was that VisiCalc automatically performed the calculations specified by the formulas as soon as the numbers were entered into the spreadsheet. There was no need to write a program to perform a few calculations. Suddenly, business users could play with their sales figures without having to call in the computer department. People bought the Apple II just to be able to use VisiCalc. The desktop computer market boomed.

IBM 迟迟未能意识到市场混乱。数字设备公司 (DEC) 和 IBM 是小型计算机的主要供应商。为了迎头赶上,IBM 于 1981 年推出了自己的个人电脑。在其广泛的销售网络的支持下,IBM PC 取得了商业上的成功。

IBM was slow to recognize the market disruption. Digital Equipment Corporation (DEC) and IBM were the main suppliers of minicomputers. In a catch-up move, IBM launched its own Personal Computer in 1981. Supported by its extensive sales network, the IBM PC became a commercial success.

三年后,苹果再次击败IBM。苹果推出了首款图形用户界面(GUI)的廉价电脑。苹果设计精美的Macintosh电脑配备了键盘、高分辨率显示屏,以及——最颠覆性的——鼠标。鼠标允许用户通过点击图标和菜单来控制电脑。程序可以在可调整大小的窗口中并排运行。鼠标取得了巨大的成功。老式的文本命令是给书呆子用的。

Three years later, Apple beat IBM to it again. Apple introduced the first graphical user interface (GUI) for an affordable computer. Apple’s attractively designed Macintosh computer shipped with a keyboard, a high-resolution display, and—most radically—a mouse. The mouse allowed users to control the computer by clicking on icons and menus. Programs could suddenly run side by side, in resizable windows. The mouse was a success. Old-fashioned text commands were for nerds.

尽管苹果公司将 GUI 商业化,但这项技术其实是在其他地方开发出来的。鼠标是由斯坦福研究院的道格拉斯·恩格尔巴特发明的。GUI 则是由施乐公司帕洛阿尔托研究中心在鲍勃·泰勒的指导下开发的。史蒂夫·乔布斯在帕洛阿尔托研究中心观看了 GUI 的演示,并决定在自己的产品中也采用类似的技术。

Although Apple introduced the GUI commercially, the technology had been developed elsewhere. The mouse had been invented by Douglas Engelbart at Stanford Research Institute. The GUI had been created at Xerox PARC under the tutelage of Bob Taylor. Steve Jobs had seen a demonstration of the GUI at PARC and had to have something like it for his own products.

Macintosh 突然给苹果的竞争对手带来了挑战。IBM 的软件合作伙伴迅速在其下一代操作系统 Microsoft Windows 中添加了 GUI 界面。与此同时,由于制造商开始推出廉价的山寨机(即 PC 克隆机),IBM PC 的销售也面临压力。IBM 和苹果根本无法在价格上竞争。很快,廉价的 Windows PC 克隆机就出现在了各行各业的办公桌上。

The Macintosh presented a sudden challenge to Apple's competitors. IBM's software partner quickly added a GUI interface to its next operating system, Microsoft Windows. At the same time, IBM PC sales were under pressure as manufacturers began to market cheap knock-offs, or PC clones. IBM and Apple simply could not compete on their prices. Soon, cheap Windows PC clones were on every desk in every business.

尽管图形用户界面 (GUI) 让单机操作变得轻松许多,但通过网络访问数据仍然困难重重。互联网提供了与全球特定计算机中心的连接。然而,网络程序仍然使用文本命令。更糟糕的是,即使是远程访问系统(公告栏、图书馆目录、远程登录等)也各自使用一套不同的特定命令。使用互联网令人沮丧不已。人们迫切需要一种易于使用的软件,用于在计算机之间共享数据。令人惊讶的是,解决方案并非来自计算机行业,而是来自欧洲粒子科学实验室 CERN。

Although the GUI made working with a single computer much easier, accessing data via networks remained a difficult task. The Internet provided connections to specific computer centers worldwide. However, the network programs still used textual commands. Worse still, even remote access systems (bulletin boards, library catalogs, remote logins, etc.) each used a different set of specific commands. Using the Internet was incredibly frustrating. There was a crying need for easy-to-use software for sharing data between computers. Surprisingly, the solution did not come from the computer industry. It came from the European particle science laboratory CERN.

全球资讯网

World Wide Web

蒂姆·伯纳斯-李1955年出生于伦敦。他毕业于牛津大学,获得物理学学位。他的父母曾参与费兰蒂Mark I的编程工作,伯纳斯-李也因此成为了一名职业软件开发者。在从事工业界工作之余,他于1980年在欧洲核子研究中心(CERN)担任了六个月的自由职业者。四年后,他重返欧洲核子研究中心,参与设计CERN的计算机网络。

Tim Berners-Lee was born in London in 1955. He graduated from Oxford University with a degree in physics. Following in the footsteps of his parents – who had been programmers on the Ferranti Mark I – Berners-Lee became a professional software developer. Between jobs in industry, he worked as a freelancer at CERN for six months in 1980. He returned four years later to work on the design of CERN’s computer network.

CERN 是欧洲核子研究中心的简称,主要位于瑞士日内瓦一个庞大的园区内。伯纳斯-李是该中心一万名员工、学生和访问研究员之一,他们共同致力于各种松散关联的项目。CERN 的组织结构、利益、文化和语言混杂,简直是杂乱无章。协调和沟通几乎不可能。对伯纳斯-李来说,联网的计算机似乎可以帮助完成日常的信息共享工作。

CERN is the European Organization for Nuclear Research, located largely on a sprawling campus in Geneva, Switzerland. Berners-Lee was one of 10,000 staff, students and visiting researchers working on a myriad of loosely connected projects. The place was a hodgepodge of organizational structures, vested interests, cultures and languages. Coordination and communication were nearly impossible. To Berners-Lee, it seemed as if networked computers could help with the daily task of sharing information.

伯纳斯·李提出了一个方案,用户的台式电脑可以下载 并查看存储在远程计算机或 服务器上。每个页面都必须存储为一个可以通过互联网传输的数据文件。数据文件必须包含文本和指示文本显示方式的特殊标签。在用户计算机上运行的特殊程序(浏览器)会从服务器请求存储的页面并显示它。每个页面都必须由一个唯一的名称标识,该名称由服务器标识符和文件名组成。后来,添加了一个前缀来指示要遵循的协议。这个完整的结构化名称现在称为统一资源定位符(URL)。

Berners-Lee proposed a scheme whereby a user's desktop computer could download and view electronic pages that werestored on remote computers, or servers. Each page had to be stored as a data file that could be passed across the Internet. The data file had to contain both text and special labels that indicated how the text was to be displayed. A special program, a browser , running on the user's computer would request a stored page from the server and display it. Each page had to be identified by a unique name consisting of a server identifier followed by the file name. Later, a prefix was added that indicated which protocol to follow. That complete structured name is now called the uniform resource locator (URL).

伯纳斯-李提案的一个关键特征是页面应该包含超链接。超链接(简称“链接”)是指一段标有指向其他网页的文本或图像。当用户点击链接时,浏览器会自动显示该链接指向的页面。链接使页面间的导航更加便捷。点击链接即可显示相应的页面。

A key feature of Berners-Lee's proposal was that the pages should contain hyperlinks . A hyperlink, or link for short, is a piece of text or an image that is labeled with a reference to another web page. When a user clicks the link, their browser automatically displays the page it points to. Links make navigation between pages much easier. Click on a link and the corresponding page appears.

超链接看起来非常现代。事实上,这个想法并不新鲜。超链接最初是由万尼瓦尔·布什(Vannevar Bush)在他1945年发表的未来展望中提出的。真正新鲜的是,联网的计算机和软件可以将布什的设想变成现实。

Hyperlinks looked incredibly modern. In fact, the idea was not new at all. Hyperlinks were first proposed by Vannevar Bush in a vision of the future he published in 1945. What was new was that networked computers and software could transform Bush's speculations into reality.

伯纳斯-李和罗伯特·卡里奥撰写了一份详细的文件,描述了该系统。他们强调互联网的全球覆盖以及通过超链接实现页面互联,并将该系统命名为万维网(WorldWideWeb,WWW)。后来,为了提高名称的可读性,添加了空格。该文件描述了两个要素:网页文件格式(或允许的内容)的正式定义;以及规定浏览器和服务器软件之间应通信的消息和行为的协议。

Berners-Lee and Robert Cailliau produced a detailed document describing the system. Emphasizing the global reach of the Internet and the interconnection of pages via hyperlinks, they named the proposed system the WorldWideWeb (WWW). Spaces were later added to make the name more readable. The document describes two elements: a formal definition of the file format (or permitted content) of Web pages; and a protocol specifying the messages and behaviors the browser and server software should communicate.

在项目获得批准后的一年内,伯纳斯-李完成了第一个WWW浏览器和WWW服务器的软件。世界上第一个网站于1991年8月6日上线。原始页面仍然可以在以下网址访问:

Within a year of receiving approval for the project, Berners-Lee completed the software for the first WWW browser and WWW server. The world's first website went live on August 6, 1991. The original pages can still be accessed at:

Info.cern.ch/hypertext/WWW/TheProject.html

Info.cern.ch/hypertext/WWW/TheProject.html

在伯纳斯-李的敦促下,欧洲核子研究中心(CERN)免费开放了万维网规范和软件。该系统起步缓慢。1993年,伊利诺伊大学香槟分校马克·安德森(Marc Andreessen)领导的一个团队推出了一款新的浏览器。这款名为Mosaic的浏览器可以运行伯纳斯-李的服务器软件,但关键的是,它运行的是微软Windows系统。当时运行Windows系统的PC数量远远超过了伯纳斯-李在CERN工作时那些不起眼的工作站。到年底,已有500台网络服务器上线。除了粒子物理和计算网站之外,还有财经新闻、漫画、电影数据库、地图、网络摄像头、杂志、公司宣传册、餐厅广告和色情内容等页面。

At Berners-Lee's urging, CERN made the WWW specifications and software freely available. The system got off to a slow start. In 1993, a group at the University of Illinois at Urbana-Champaign led by Marc Andreessen launched a new browser. Mosaic, as it was called, could handle Berners-Lee's server software, but crucially, it ran Microsoft Windows. Many more PCs were running Windows than the obscure workstations Berners-Lee had worked on at CERN. By the end of the year, 500 Web servers were online. Web sites on particle physics and computing were joined by pages devoted to financial news, cartoons, movie databases, maps, webcams, magazines, company brochures, restaurant ads, and pornography.

次年,随着万维网(WWW)的兴起,蒂姆·伯纳斯-李离开欧洲核子研究中心(CERN),创立并领导万维网联盟(W3C)。W3C 是一家非营利组织,致力于与行业合作伙伴合作开发和推广万维网。该联盟至今仍在监督万维网的标准。秉承伯纳斯-李的理念,WWW 标准始终开放、免费且公开可用。任何人都可以构建兼容的网络浏览器或网络服务器,无需获得许可或支付费用。

The following year, as WWW took off, Tim Berners-Lee left CERN to found and lead the World Wide Web Consortium (W3C). W3C operates as a non-profit organization that works with industry partners to develop and promote the World Wide Web. The consortium continues to monitor standards for the World Wide Web to this day. True to Berners-Lee's ideals, WWW standards remain open, free, and publicly available. Anyone can build a compatible web browser or web server without seeking permission or paying a fee.

万维网为世界提供了一个廉价、强大且易于使用的信息共享平台。现在,该如何利用它,就交给网站开发者了。

The World Wide Web had given the world a cheap, robust and easy-to-use platform for sharing information. The ball was now in the court of website developers to figure out what to do with it.

亚马逊给出建议

Amazon gives advice

伯纳斯-李离开欧洲核子研究中心那年,一位华尔街投资银行家偶然发现了一个惊人的数据。受Mosaic浏览器的推动,万维网的年增长率高达2300%。这个数字简直不可思议。超过10%的增长率都很难实现,更不用说超过1000%了。这位银行家在万维网上发现了海量信息,但几乎没有什么可以买到的。这肯定是一个尚未开发的市场。问题是:“你会卖什么?”

The year Berners-Lee left CERN, an investment banker on Wall Street happened upon a startling statistic. Fueled by the popularity of the Mosaic browser, the World Wide Web was growing 2,300 percent year over year. That number was ridiculous. Growth of more than 10 percent is hard to achieve, let alone more than a thousand. The banker found a huge amount of information on the World Wide Web, but almost nothing that you could buy. This must surely be an untapped market. The question was, "What would you sell?"

当时,互联网速度仍然太慢,无法播放音乐或视频。产品配送必须由美国公司完成。美国邮政服务。一家网上商店的设计初衷是像邮购业务一样,只是更胜一筹。顾客可以浏览最新的商品目录,并通过网络下单。这位银行家研究了排名前二十的邮购公司,最终认定卖书是绝佳的选择。这位投资银行家偶然发现了一个千载难逢的机会。

At that time, the internet was still far too slow to stream music or videos. Product delivery would have to be done by the AmericanPostal Service, US Postal. An Internet store was supposed to look like a mail-order business—only better. Customers would be able to view a current catalog and place an order over the Web. The banker studied the top twenty mail-order businesses. He decided that selling books would be a great fit. The investment banker had stumbled upon the opportunity of a lifetime.

三十岁时,杰夫·贝佐斯成为DE Shaw & Company有史以来最年轻的高级副总裁。他出生于新墨西哥州阿尔伯克基,在德克萨斯州和佛罗里达州长大。他毕业于普林斯顿大学,获得计算机科学和电气工程学位。之后,他从事了一系列计算机和金融领域的工作,并迅速晋升为高级副总裁。

At thirty years old, Jeff Bezos was the youngest senior vice president ever at DE Shaw & Company. He was born in Albuquerque, New Mexico, and grew up in Texas and Florida. He attended Princeton University, earning degrees in computer science and electrical engineering. He then held a series of computer jobs and roles in finance, quickly climbing the career ladder to senior vp.

这个灵感让贝佐斯陷入了两难境地。他是否应该放弃纽约六位数年薪的银行工作,去卖书?贝佐斯求助于一种他用来做出改变游戏规则的决策的算法:

The inspiration presented Bezos with a dilemma. Should he give up his six-figure banking job in New York to sell books? Bezos turned to an algorithm he used to make such game-changing decisions:

我希望自己在 80 岁时能够展望未来,然后说:‘好吧,我回顾自己的一生,我希望尽量减少遗憾。’

I wanted to look ahead to myself, at age 80, and say, 'Okay, I'm looking back on my life, I want to minimize my amount of regrets.'

我知道当我 80 岁时,我不会后悔尝试这个。

I knew that when I was 80, I wouldn't regret trying this.

我知道我唯一会后悔的就是从未尝试过。那将会每天困扰着我。

I knew that the one thing I would regret is never having tried it. [That] would haunt me every day.

贝佐斯辞去了华尔街的工作,开始着手在一个实际上并不存在的地方——网上建立一家书店。

Bezos left his Wall Street job and set out on a mission to build a bookstore in a place that didn't really exist – online.

要让互联网生意起步,他需要两样东西:拥有电脑技能的员工和可供销售的书籍。位于太平洋西北地区的西雅图两者兼具。微软和最大的图书经销商都设在那里。他和一年前结婚的妻子麦肯齐·贝佐斯(娘家姓塔特尔)一起登上了飞往德克萨斯州的飞机。抵达后,他们从父亲那里借了一辆车,开车前往西雅图,麦肯齐开车,贝佐斯则在笔记本电脑上打着他的商业计划。贝佐斯用父母的积蓄作为资金来源,在西雅图安顿下来,住进了一栋两居室的小房子。1995年7月16日,amazon.com网站上线。

He needed two things to get an Internet business off the ground: employees with computer skills and books to sell. Seattle on the Pacific Northwest had both. Microsoft was based there, as were the largest book distributors. With his wife, whom he had married a year earlier—MacKenzie Bezos (née Tuttle)—he boarded a plane to Texas. Upon arrival, they borrowed a car from his father and drove to Seattle, with MacKenzie driving while Bezos typed his business plan on a laptop computer. Using his parents’ savings as a source of capital, Bezos settled into a small two-bedroom house in Seattle. On July 16, 1995, the amazon.com website went live.

格雷格·林登(Greg Linden)加入亚马逊,担任软件开发人员,同时也是数据科学家。他负责开发一种算法,根据客户的购买行为提供个性化推荐。

Greg Linden joined Amazon as a software developer, a data scientist avant la lettre. He was the brain behind the algorithm that provides customers with personalized recommendations based on their purchasing behavior.

销售业绩良好。亚马逊搬到了第二大道。办公室过于拥挤,以至于新员工之一的格雷格·林登(Greg Linden)被迫在厨房工作。

Sales were healthy. Amazon moved to 2nd Avenue. The offices were so overcrowded that Greg Linden, one of the new hires, was forced to work in the kitchen.

林登暂时告别了华盛顿大学的学业。他热爱创业的忙碌与忙碌,但决心重返校园,攻读计算机科学博士学位。与此同时,林登认为自己可以帮助亚马逊提高图书销量。他坚信,推荐系统能够将主页访问量转化为图书购买量。

Linden had taken a break from his studies at the University of Washington. He loved the hustle and bustle of the startup but was determined to return to college to pursue a PhD in computer science. In the meantime, Linden thought he could help Amazon sell more books. He was convinced that a recommendation system would help convert visits to the homepage into book purchases.

产品推荐系统会分析顾客的购买决策,然后推荐他们可能想买的其他产品。一位之前购买过犯罪小说集的读者可能会想买一本《福尔摩斯》的特别版,或者一本雷蒙德·钱德勒的小说。将这些书籍作为推荐内容展示给用户,或许能鼓励他们购买。

A product recommendation system analyzes a customer’s purchasing decisions and then suggests other products they might want to buy. A reader who previously purchased a collection of crime novels might be tempted to buy a special edition of Sherlock Holmes or a Raymond Chandler novel. Showing those books as suggestions to a user might encourage them to buy one.

本质上,推荐是一种广告形式。不同之处在于,推荐是个性化的,根据个人兴趣量身定制。Linden 希望个性化推荐能够提高每次访问主页的销售量。与传统的“一刀切”广告相比,亚马逊的推荐引擎并非如此。当时,网上已经有不少实验性的推荐引擎。相比之下,亚马逊的推荐引擎必须在商业环境中大规模运作。林登向公司领导层提出了他的想法,并获得了批准,开始构建亚马逊的第一个推荐引擎。

Essentially, recommendation is a form of advertising. The difference is that the recommendation is personalized . It is tailored to the individual based on their interests. Linden's hope was that the personalized recommendations would increase the number of sales per visit to the homepagecompared to traditional one-size-fits-all advertising. There were already a handful of experimental recommendation engines online. In contrast, Amazon’s recommendation would have to work on a large scale in a commercial environment. Linden pitched his idea to the company’s leadership and got the green light to start building Amazon’s first recommendation engine.

Linden 的想法纯粹基于直觉。如果一对产品经常一起购买,那么拥有其中一种产品的顾客很可能也会想购买另一种。这些产品最初不必成对购买。唯一重要的是用户经常同时购买这两种产品。原因也不重要。这些书可能是同一位作者写的,也可能属于同一类型,又或者它们都是同一种国家考试的学习指南。在推荐产品时,配对背后的时机和想法并不重要。唯一重要的是顾客经常同时购买这两种产品。

Linden based his idea on pure intuition. If a pair of products is often bought together, then it is likely that a customer who has one product will also want to buy the other. The products do not have to be bought as a pair initially. The only thing that matters is that users often buy both. The reason why does not matter either. The books could be written by the same author. They could belong to the same genre. Or maybe they are both study guides for the same state exams. When it comes to recommending products, the timing and idea behind the pairing is unimportant. The only thing that matters is that customers often buy both products.

Linden 的算法记录了用户在亚马逊网站上的所有购买记录。当用户进行购买时,该算法会记录用户的唯一标识符以及所购书籍的标题。该算法会检索用户之前所有购买记录的列表,然后将新产品与该用户之前的所有购买记录进行匹配。

Linden's algorithm records all purchases made on Amazon's website. When a user makes a purchase, the algorithm records the user's unique identifier and the titles of the books purchased. The algorithm retrieves a list of all previous purchases made by the user and then matches the new products with all previous purchases made by that user.

假设 Marit 购买了《夏洛特的网》这本书,并且之前 购买了《小王子》《木偶奇遇记》。这将产生两个新的图书链接:

Suppose Marit buys the book Charlotte's Web and has previously bought The Little Prince and Pinocchio . This results in two new book links:

夏洛特的网和小王子

Charlotte's Web & The Little Prince

夏洛特的网和木偶奇遇记。

Charlotte's Web & Pinocchio.

此信息用于定制产品比较表。该表包含亚马逊网站上所有书籍的列表,以行和列的形式呈现。因此,每对书籍对应表中的两个单元格。单元格记录单个用户购买一对书籍(行和列)的次数。该数字即为该对书籍的比较分数。

This information is used to customize the product comparison table. This table consists of a list of all books on the Amazon website in both rows and columns. Each pair of books therefore corresponds to two cells in the table. The cells record how many times a pair of books (row and column) has been purchased by a single user. That number is the comparison score for that pair of books.

玛丽特购买 《夏洛特的网》后,得到了两对新的配对。因此,《夏洛特的网》《小王子》的单元格数量 增加了一个,《夏洛特的网》《匹诺曹》的单元格数量也增加了一个(参见185页的表格)。

Marit's purchase of Charlotte's Web yields two new pairs. As a result, the cells for Charlotte's Web and The Little Prince are increased by one, as are the cells for Charlotte's Web and Pinocchio (see the table on page 185).

三本书的比较表

COMPARISON TABLE FOR THREE BOOKS

 

 

《匹诺曹》

Pinocchio

《小王子》

The Little Prince

《匹诺曹》

Pinocchio

夏洛特的网

Charlotte's Web

4

4

1

1

《小王子》

The Little Prince

4

4

1

1

《匹诺曹》

Pinocchio

1

1

1

1

单元格表示用户购买每本书的次数。

The cells indicate the number of times each pair of books was purchased by a user.

当用户访问亚马逊网站时,算法会使用对比表进行推荐。该方法首先检索用户的购买历史记录。对于用户购买的每本书,算法都会在对比表中查找相应的行。算法会查找这些行中不为空的单元格。对于每一行,算法都会查看列顶部的书名。这些书名和对比分数会被放入一个列表中。算法完成后,会遍历列表并删除所有重复项或用户已购买的产品。剩余的产品会按对比分数排序,并将分数最高的书籍作为推荐显示给用户。

When a user arrives on the Amazon website, the algorithm uses the comparison table to make recommendations. The method starts by retrieving the user's purchase history. For each book that the user has purchased, the algorithm looks for the corresponding row in the comparison table. The algorithm looks through those rows for cells that are not empty. For each of them, the algorithm looks at the book title at the top of the column. Those book titles and comparison scores are put into a list. When the algorithm is done, it goes through the list and removes any duplicates or products that the user has already purchased. The remaining products are sorted by comparison score, and the books with the highest scores are shown to the user as recommendations.

综上所述,该算法的工作原理如下:

In summary, the algorithm works as follows:

获取比较表和购买历史记录

Take the comparison table and purchase history

来自用户作为输入。

from the user as input.

创建一个空白列表。

Create a blank list.

对购买历史记录中的每个产品重复此操作:

Repeat for each product in the purchase history:

在比较表中找到相应的行

Find the corresponding row in the comparison table

对行中的每一列重复以下操作:

Repeat for each column in the row:

如果比较分数大于零,

If the comparison score is greater than zero,

然后将相应的标题和分数添加到列表中。

then add the corresponding title and score to the list.

在行尾停止重复。

Stop repeating at the end of the row.

从列表中删除所有重复项。

Remove any duplicates from the list.

删除用户已经购买的任何书籍。

Remove any book the user has already purchased.

按比较分数对列表进行排序。

Sort the list by comparison score.

提供比较分数最高的标题。

Provide the titles with the highest comparison score.

假设 四个不同的用户成对购买了《夏洛特的网》《小王子》 ;同一个顾客同时购买了《夏洛特的网》《木偶奇遇记》 ,就像《小王子》《木偶奇遇记》一样。想象一下,妮可访问亚马逊网站。推荐算法检索她的购买历史记录,发现她到目前为止只购买了一本书:《小王子》。该算法沿着《小王子》 的行搜索比较表 ,并找到两个非空单元格:4 和 1。查看相应列的顶部,算法发现《夏洛特的网》《木偶奇遇记》 与《小王子》配对由于《夏洛特的网》具有更高的比较分数 (4),因此建议将其作为最佳推荐给妮可。换句话说,妮可更有可能购买《夏洛特的网》而不是《木偶奇遇记》,因为 过去 有更多顾客同时购买了《小王子》《夏洛特的网》

Let's say that Charlotte's Web and The Little Prince were purchased as a pair by four different users; Charlotte's Web and Pinocchio were purchased together by one customer, as were The Little Prince and Pinocchio. Imagine that Nicole goes to the Amazon website. The recommendation algorithm retrieves her purchase history and sees that she has only purchased one book so far: The Little Prince. The algorithm searches the comparison table along the row for The Little Prince and finds two non-empty cells: 4 and 1. Looking at the top of the corresponding columns, the algorithm finds that Charlotte's Web and Pinocchio are paired with The Little Prince. Because Charlotte's Web has a higher comparison score (4), it is suggested to Nicole as the best recommendation. In other words, Nicole is more likely to purchase Charlotte's Web than Pinocchio, because more customers have purchased both The Little Prince and Charlotte's Web in the past .

随着数据库规模的扩大,推荐的准确性显著提升。产品对比表中的数据越多,用户的购买历史越丰富,推荐的效果就越好。随着数据量的增加,异常现象逐渐消失,重要的趋势逐渐显现。只要有足够多的数据,推荐算法就能达到惊人的准确率。根据麦肯锡最近的一份报告,亚马逊 35% 的销售额来自产品推荐。

Recommendation accuracy improves significantly as the size of the database increases. The more data there is in the product comparison table and the more extensive the user’s purchase history, the better the recommendations become. With more data, oddities disappear and important trends emerge. Given enough data, recommendation algorithms are surprisingly accurate. According to a recent McKinsey report, 35 percent of Amazon’s sales come from product recommendations.

亚马逊成立之年(1995年),万维网拥有4400万用户和2.3万个网站。次年,用户数量翻了一番,网站数量增长了十倍。万维网迅速风靡一时。

In the year Amazon started (1995) WWW boasted 44 million users and 23,000 websites. The following year the number of users doubled and the number of websites increased tenfold. The world wide web became a craze.

网页数量的激增开始给用户带来困扰。他们经常漫无目的地浏览网页,点击一个又一个链接。如何才能找到他们想要的内容呢?那些试图按主题对万维网进行分类的手动维护网站目录不堪重负。在线查找信息变得越来越慢,令人沮丧。用户迫切需要一个能够神奇地显示正确链接的网站。

The sheer number of web pages began to pose a problem for users. They often surfed the web mindlessly, clicking on link after link. How could anyone find what they were looking for? Manually maintained directories of websites that attempted to catalog the world wide web by subject were overwhelmed. Finding information online became increasingly slow and frustrating. Users desperately wanted a website that would magically display just the right link.

Google 搜索网络

Google searches the web

1995年春天,谢尔盖·布林受邀带领一位新人参观斯坦福大学。21岁的布林已经在斯坦福大学学习了两年。他出生于莫斯科,六岁时父母移民到美国。19岁时,他从马里兰大学毕业,获得计算机科学和数学学位,之后获得奖学金进入斯坦福大学继续深造。

In the spring of 1995, Sergei Brin was asked to show a newcomer around Stanford University. At 21, Brin had been a Stanford student for two years. He was born in Moscow, and his parents had immigrated to the United States when he was six. He graduated from the University of Maryland at 19 with a degree in computer science and mathematics, and then won a scholarship to continue his studies at Stanford.

新来者是22岁的拉里·佩奇。佩奇在密歇根大学获得了计算机科学学士学位,即将前往斯坦福大学攻读硕士学位。来自美国中西部的佩奇对斯坦福大学印象深刻。他几乎预料到自己会再次被调走。

The newcomer was 22-year-old Larry Page. Page had completed his bachelor's degree in computer science at the University of Michigan and was going to get his master's degree at Stanford. Hailing from the Midwest, Page was deeply impressed by Stanford. He half expected to be sent away again.

布林和佩奇几乎立刻就互相厌恶起来。佩奇对此表示:

Brin and Page developed an almost immediate dislike for each other. Page says of this:

我觉得他很让人难以忍受。他对每件事都持有强烈的意见,我想我也一样。

I found him quite insufferable. He had really strong opinions about everything, and I think I did too.

布林:

Brin:

我们俩都觉得对方令人难以忍受。

We both found each other insufferable.

尽管如此,这两名学生还是喜欢用机智的语气反驳:

Nevertheless, the two students had a penchant for witty retorts:

我们以前总是互相取笑。

We used to tease each other all the time.

佩奇不用坐下一班公交车回家。获得硕士学位后,他开始攻读博士学位,研究万维网的数学特性。他花了很多空闲时间与布林相处。两人开始合作一些他们都感兴趣的项目。

Page didn’t have to take the next bus home. After earning his master’s degree, he began his PhD, which focused on the mathematical properties of the World Wide Web. He spent a lot of free time with Brin. And the two began collaborating on projects they both found interesting.

计算机行业的每个人都知道,万维网的需求量很大。网景公司刚刚成功IPO,虽然没有盈利,但融资了30亿美元。它唯一的产品是一款免费赠送的网络浏览器。那次IPO是华尔街 互联网泡沫的前兆 。“.com”这个流行词指的是商业网站的URL后缀“.com”。一个接一个另一家互联网初创公司的股价也疯狂上涨。

Everyone in computing knew that the World Wide Web was in great demand. Netscape had just made a successful IPO, without making a profit, raising $3 billion. Its only product was a Web browser that it gave away for free. That IPO was the precursor to the Wall Street dot-com bubble . The popular term dot-com refers to the URL suffix of commercial Web sites, .com. One after the otherthe other internet startup achieved insane stock prices.

佩奇将注意力转向了万维网搜索问题。显然,网站的目录不够完善。对用户来说,逐一搜索按字母顺序排列的类别、主题和子主题实在太耗时了。搜索查询似乎更合乎逻辑。只需输入您要查找的内容,最相关的链接就会出现。问题在于,将搜索词与网站标题匹配根本不起作用。它生成的大多数链接要么不相关,要么质量低下,要么两者兼而有之。用户不得不在大量垃圾信息中艰难跋涉,才能找到他们想要的内容。佩奇意识到,根据链接的重要性和与搜索查询的相关性对其进行精确排名是关键。一个准确的网站排名系统会将有用的链接推到列表顶部。问题是:如何准确地对网站进行排名?

Page turned its attention to the problem of searching the World Wide Web. Clearly, the directories of Web sites were not up to par. Exhaustively searching alphabetical lists of categories, then topics, then subtopics was far too time-consuming for users. A search query seemed more logical. Just type in what you were looking for and the most relevant links should appear. The problem was that matching search terms with Web site titles didn't work at all. Most of the links it produced were either irrelevant, low-quality, or both. Users were forced to wade through a huge amount of junk before finding what they were looking for. Page realized that precisely ranking links based on their importance and relevance to the search query was the key. An accurate system for ranking Web sites would push useful links to the top of the list. The question was: How can you accurately rank Web sites?

佩奇熟悉一种现有的、基于印刷品的学术研究文章排名系统。这些文章通常根据它们在其他出版物中被引用的次数进行排名,这被称为引文索引。其理念是,一篇文章被引用的次数越多,它就越重要。佩奇意识到超链接在某种程度上与那些参考文献类似。从一个页面到另一个页面的超链接意味着页面的作者认为链接的页面在某种程度上很重要或相关。计算链接指向某个页面的次数可以成为判断该页面重要性的一个好方法。带着这个想法,佩奇开始开发一种对网页重要性进行排名的算法。他以自己的名字命名了这个方法,称之为 PageRank。

Page was familiar with an existing, print-based system for ranking academic research articles. These are usually ranked by the number of times they are cited in other publications, called the citation index. The idea is that the more times an article is cited or cited, the more important it is. Page realized that hyperlinks are in some ways like those references. A hyperlink from one page to another means that the author of the page thinks the linked page is important or relevant in some way. Counting the number of times a link points to a page can then be a good way to judge the importance of that page. With that idea in mind, Page began developing an algorithm for ranking the importance of web pages. As a play on his own name, he called the method PageRank.

PageRank 并非简单地计算所有链接:该算法还会考虑链接到被评级页面的页面的重要性。这可以防止网站管理员通过创建链接到该页面的虚假页面来人为提高页面排名。要产生影响力,页面必须包含链接,因此本身就很重要。实际上,PageRank 的排名是基于网站开发者的集体智慧。

PageRank doesn't simply count all the links: the algorithm takes into account the importance of the pages that link to the page being rated. This prevents webmasters from artificially boosting the ranking of a page by creating bogus pages that link to it. To have any influence, pages must have a link, and therefore be important themselves. In effect, PageRank ranks web pages based on the collective intelligence of web developers.

每个网页都会被分配一个 PageRank 分数:分数越高,页面就越重要。每个页面的分数等于链接到该页面的页面的加权 PageRank 值之和加上一个衰减项。

Each web page is assigned a PageRank score: the higher the score, the more important the page. The score for each page is equal to the sum of the weighted PageRanks of the pages that link to it plus a dampening term.

传入链接的 PageRank 通过三种方式加权。首先,将其乘以从链接页面到被测量页面的链接数。其次,对其进行归一化,即除以链接页面上的链接数。这背后的想法是,来自具有许多链接的页面的链接的价值低于来自具有少量链接的页面的链接。第三,将 PageRank 乘以衰减因子。衰减因子是一个常数值(通常为 0.85),它解释了用户可以跳转到任意页面而不是点击链接的事实。衰减项通过将 1 减去衰减因子(通常为 0.15)添加到总数来补偿这一点。

The PageRank of an incoming link is weighted in three ways. First, it is multiplied by the number of links from the linked page to the page being measured. Second, it is normalized , which means it is divided by the number of links present on the linked page. The idea behind this is that a link from a page with many links is worth less than a link from a page with few links. Third, the PageRanks are multiplied by a dampening factor. The dampening factor is a constant value (typically 0.85) that accounts for the fact that a user can jump to an arbitrary page instead of following a link. The dampening term compensates for this by adding one minus the dampening factor to the total (typically 0.15).

PageRank 可以理解为随机选择链接的网页浏览者到达特定页面的概率。指向某个页面的链接越多,浏览者到达该页面的可能性就越大。因此,该页面的 PageRank 不仅取决于指向该页面的链接数量,还取决于这些链接页面的 PageRank。也就是说,所选网页的 PageRank 取决于所有指向该页面的链接。它就像一个漏斗,漏斗效应会循环往复,循环路径上会出现一个、两个、三个或更多链接。这种依赖关系使得 PageRank 的计算变得困难。如果每个 PageRank 都依赖于其他所有 PageRank,我们该如何计算呢?

PageRank can be thought of as the probability that a web surfer who randomly chooses links will arrive at a particular page. Many links to a page means that the surfer is more likely to arrive at that destination. Therefore, the PageRank of that page depends not only on the number of links to that page, but also on the PageRank of those linked pages. So the PageRank of the chosen web page depends on all the links that lead to it. It works like a funnel, and the funnel effect goes back one, two, three or more links in the chain. This dependency makes PageRank difficult to calculate. If every PageRank depends on every other PageRank, how can we begin to calculate it?

计算 PageRank 的算法是迭代的。最初,PageRank 等于指向页面的直接链接数除以平均链接数。然后,PageRank 被重新计算为加权后的 PageRank 之和加上衰减项。这将得出一组新的 PageRank。之后,这些值将用于重新计算 PageRank,依此类推。每次迭代都会使 PageRank 更接近一组稳定的值。当 PageRank 不再变化时,迭代停止。

The algorithm for calculating PageRank is iterative. Initially, PageRank is set equal to the number of incoming direct links to a page divided by the average number of incoming links. The PageRanks are then recalculated as the sum of the weighted incoming PageRanks plus the dampening term. This gives a new set of PageRanks. These values ​​are then used to recalculate the PageRanks, and so on. With each iteration, the calculation brings the PageRanks closer to a stable set of values. The iteration stops when the PageRanks show no further changes.

想象一下一个只有五页的迷你万维网(见下一页的图片)。乍一看,很难确定哪个页面最重要。两个页面有三个传入链接(B 和 E)。其中一个页面有两个传入链接(A),另外两个页面不太受欢迎,只有一个传入链接(C 和 D)。

Imagine a mini-WWW consisting of only five pages (see the image on the next page). At first glance, it is difficult to determine which page is the most important. Two pages have threeincoming links (B and E). One page has two incoming links (A) and the other two pages are less popular, with only one incoming link (C and D).

计算 PageRank 得分首先要创建一个表格,用于显示页面之间的链接数量(参见表格)。表格的每一行和每一列都对应一个页面。表格中的单元格记录了从一行页面到一列页面的链接数量。因此,如果您查看某一行,您会看到该页面上的出站链接数量。如果您查看某一列,您会看到该页面上的入站链接数量。

Calculating PageRank scores starts with creating a table that shows the number of links between pages (see the table). Each row corresponds to a page, as does each column. The cells in the table record the number of links from a page in a row to a page in a column. So if you look at a row, you see the number of outgoing links on that page. If you look at a column, you see the number of incoming links on that page.

五个链接网页

FIVE LINKING WEB PAGES

页面间链接表

TABLE OF LINKS BETWEEN PAGES

该算法会创建第二个表格,用于显示每个页面的 PageRank(见下表)。首先,算法会将 PageRank 的粗略估计值放入该表格中。这些值是用页面的入站链接数除以平均入站链接数得出的。

The algorithm creates a second table that shows the PageRank for each page (see the table below). To start, the algorithm places rough estimates of the PageRanks in that table. These show the number of incoming links from pages divided by the average number of incoming links.

最终 PageRank 值表

TABLE OF FINAL PAGERANK VALUES

在迷你 WWW 示例中获得。

obtained in the mini-WWW example.

然后,该算法会逐页或逐列重新计算 PageRank 表中的 PageRank。处理页面时,会计算参考表中单个列的传入加权 PageRank。每个传入链接的 PageRank 是通过检查该页面的当前 PageRank 值来获取的。将该值乘以该页面上的传出链接总数。将该值乘以衰减因子 (0.85) 即可得出加权 PageRank。所有传入链接都会执行此计算。将得到的加权传入 PageRank 值相加,然后加上衰减因子 (0.15)。这样就得出了该页面的新 PageRank。该值将添加到 PageRank 表中。

The algorithm then recalculates the PageRank page by page, or column by column in the PageRank table. A page is processed by calculating the incoming weighted PageRanks for a single column in the reference table. The PageRank of each incoming link is obtained by examining the current PageRank of that page. That value is multiplied by the total number of outgoing links on the page. The value is multiplied by the dampening factor (0.85) to obtain the weighted PageRank. The calculation is performed for all incoming links. The resulting weighted incoming PageRanks are summed and then the dampening term (0.15) is added. This yields the new PageRank for that page. The value is added to the PageRank table.

对所有页面重复计算 PageRank。处理完所有页面后,将新的 PageRank 与之前的值进行比较。如果变化较小,则结束计算并返回结果。否则,重复计算(完整算法详见附录)。

The PageRank calculation is repeated for all pages. When all pages have been processed, the new PageRanks are compared with the previous values. If the change is small, the process is finished and the results are returned. Otherwise, the calculation is repeated (the complete algorithm is given in detail in the Appendix).

例如,想象一下在计算页面 A 的 PageRank 时执行第二次迭代:PageRank 是加权链接到该页面的页面 D 和 E 的 PageRank。D 的初始 PageRank 为 0.5。从 D 到 A 的链接数为 1。从 D 到 A 的链接数为 3。因此,从 D 到 A 的加权 PageRank 为 0.5 × 1/3 = 0.167。同样,从 E 到 A 的加权 PageRank 为 1.5 × 1/2 = 0.75。考虑到衰减项,A 的新 PageRank 为 0.167 + 0.75 + 0.15 = 1.067。

For example, imagine the execution of the second iteration in calculating the PageRank of page A: the PageRank is the sum of the weightedPageRanks of the pages that link to it, namely pages D and E. The initial PageRank of D is 0.5. The number of links from D to A is 1. The number of links from D is 3. Therefore, the weighted PageRank from D to A is 0.5 × 1/3 = 0.167. Similarly, the weighted PageRank from E to A is 1.5 × 1/2 = 0.75. Taking the dampening term into account, the new PageRank for A is then 0.167 + 0.75 + 0.15 = 1.067.

迭代过程会平衡 PageRank,使其反映页面之间的互联程度。数值越大,表示页面之间的互联程度越高;数值越小,表示页面之间的互联程度越低。最终,数值会稳定下来,平衡流量。

The iterative procedure balances the PageRanks so that they reflect the interconnectedness of the pages. Larger values ​​go to more connected pages, smaller values ​​to less well-connected pages. Eventually, the numbers settle into a steady state that balances the flow.

在迷你万维网示例中,PageRank 得分在五次迭代后达到一个基本恒定的值。最终,页面 E 拥有最高的 PageRank。该页面的入站链接数量与页面 B 相同,但排名仍然更高。这是因为指向页面 E 的页面 B 只有一个出站链接。相比之下,指向页面 B 的页面 E 有两个出站链接。规范化降低了页面 B 的 PageRank。

In the mini-WWW example, the PageRank scores reach a more or less constant value after five iterations. Finally, page E has the largest PageRank. That page has the same number of incoming links as B, but is still ranked higher. That is because page B, which points to page E, has only that single link. In contrast, page E, which points to B, has two outgoing links. The normalization reduces the PageRank of page B.

为了测试该算法,佩奇、布林和斯坦福大学教授拉吉夫·莫特瓦尼开发了一个原型搜索引擎。他们使用网络爬虫下载了一张万维网地图。网络爬虫是一种程序,它像人类冲浪者一样探索万维网,逐个追踪链接。在此过程中,爬虫会捕获访问过的页面快照。爬虫会从几个手动处理的URL开始,快速构建一张万维网的本地地图。然后,PageRank算法被应用于生成的数据集,以衡量每个页面的重要性。当用户查询时,该团队的搜索引擎BackRub会在本地地图中搜索匹配的页面标题。生成的页面列表按PageRank排序并显示给用户。

To test the algorithm, Page, Brin, and Stanford professor Rajeev Motwani built a prototype search engine. They used a Web crawler to download a map of the WWW. A Web crawler is a program that explores the WWW much like a human surfer, following link after link. Along the way, the crawler captures snapshots of pages visited. Starting with a few manually processed URLs, a crawler quickly builds a local map of the WWW. The PageRank algorithm is then applied to the resulting data set to measure the importance of each of those pages. When a user query comes in, the group's search engine, BackRub, searches the local map for matching page titles. The resulting list of pages is sorted by PageRank and displayed to the user.

BackRub 最初仅在斯坦福大学内部使用。尽管如此,它的表现如此出色,以至于佩奇和布林决定扩展这项服务。

BackRub was only used internally at Stanford. Nevertheless, its performance was so promising that Page and Brin decided to expand the service.

他们购买了更多电脑,以便索引更多万维网内容,并处理更多并发搜索。转念一想,他们认为 BackRub 这个名字不太好。他们需要一个能够预示万维网未来规模的名字。他们最终选择了 Googol,因为 Googol 代表 1 后面跟着 100 个零。他们偶然拼出了“Google”这个词。布林为新网站设计了一个五彩斑斓的标志。到 1998 年 7 月,Google 搜索引擎已经收录了 2400 万个页面。关键在于,它的搜索结果远远领先于竞争对手。新来者已经准备好迎接真正的挑战了。

They bought more computers so that more of the WWW could be indexed and more simultaneous searches could be processed. On second thought, they thought BackRub was a bad name. They needed a name that would indicate the future scale of the WWW.They settled on Googol, because a googol is a 1 followed by a hundred zeros. By accident, they spelled the word "Google." Brin designed a multicolored logo for the new website. By July 1998, the search engine had indexed 24 million pages. The clincher was that its search results were light years ahead of those of its competitors. The newcomer was ready for the real thing.

1998年8月,布林和佩奇经人引荐结识了斯坦福大学毕业生安迪·贝克托尔谢姆 (Andy Bechtolsheim)。贝克托尔谢姆是两家成功科技初创公司的联合创始人。布林和佩奇向他们介绍了谷歌的提案。贝克托尔谢姆对他的提案印象深刻。他当场给谷歌公司开了一张10万美元的支票。没有谈判,没有条款,也没有估值。贝克托尔谢姆只想参与其中。他感觉自己是在回报早期支持者的恩情。布林和佩奇接过支票时,忘了指出谷歌公司当时还不存在。

In August 1998, Brin and Page were introduced to Stanford graduate Andy Bechtolsheim, the co-founder of two successful new technology startups. Brin and Page presented their Google proposal. Bechtolsheim was impressed by what he heard. He wrote a check for $100,000 to Google, Inc. on the spot. No negotiations, no terms, no estimates. Bechtolsheim just wanted to be a part of it. It felt to him like he was repaying an old favor done by early backers. Grabbing the check, Brin and Page forgot to point out that Google, Inc. didn't exist—yet.

1999 年 2 月, 《个人电脑杂志》报道称,刚刚起步的谷歌搜索引擎:

In February 1999, PC Magazine reported that the fledgling Google search engine:

具有提供高度相关结果的非凡才能。

had an uncanny knack for delivering highly relevant results.

一年后,谷歌公司获得了风险投资家红杉资本和凯鹏华盈的2500万美元融资。这两家公司都是硅谷的巨头,位列精英阶层的上层。他们在投资者名单上的名字几乎和这笔钱一样值钱。

A year later, Google, Inc. received $25 million in funding from venture capitalists Sequoia Capital and Kleiner Perkins, both of whom were Silicon Valley royalty and are among the upper echelons of the elite. Their names on the investor sheet were worth almost as much as the money.

次年,谷歌推出了 AdWords。它允许广告商竞价,将指向其网站的链接与 PageRank 结果一起列出。推广链接与 PageRank 结果清晰区分,方便用户区分 PageRank 结果和广告。事实证明,AdWords 比传统广告效率更高。这并不令人意外,因为 AdWords 提供的产品正是客户正在积极搜索的。企业纷纷涌向这个新的广告平台。AdWords 将免费的网络搜索变成了一座金矿。

The following year, Google launched AdWords. It allows advertisers to bid to have links to their website listed alongside PageRank results. The promoted links are clearly separated from the PageRank results, allowing users to distinguish between PageRank results and ads. AdWords proved to be far more efficient than traditional advertising. This was hardly surprising, since AdWords offered products that customers were already actively searching for. Businesses flocked to the new advertising platform. AdWords turned free web search into a goldmine.

PageRank 算法是斯坦福大学的专利。谷歌获得了斯坦福大学的独家许可,可以使用 以180万股谷歌股票换取了这家搜索引擎。2005年,斯坦福大学以3.36亿美元的价格出售了其持有的谷歌股票。这笔交易可能使得PageRank算法成为历史上最有价值的算法。

The PageRank algorithm was patented by Stanford University. Google obtained an exclusive license from Stanford to use the search engine in exchange for 1.8 million shares. In 2005, Stanford University sold its Google shares for $336 million. That transaction probably makes PageRank the most valuable algorithm in history.

互联网泡沫

The Internet Bubble

1995年网景公司上市后,大量资金涌入新兴的互联网公司。盈利能力已不重要,唯一的价值衡量标准是网站拥有的用户数量。投资互联网公司成了金字塔骗局。纳斯达克指数严重依赖上市科技公司,其价值在1995年至2000年间增长了五倍。该指数在2000年3月10日达到5048点的峰值,随后崩盘。到2002年10月4日,纳斯达克指数回落至1139点,市值缩水逾四分之三,几乎回到了1995年的水平。互联网泡沫重创了科技公司,大量公司最终化为乌有。纳斯达克指数用了漫长的十五年时间才达到2000年的峰值。

Immediately after Netscape went public in 1995, massive investments poured into new WWW companies. Profitability was irrelevant. The only measure of value was the number of users a website boasted. Investing in WWW companies became a pyramid scheme. The value of the NASDAQ index, which is heavily dependent on publicly traded technology companies, increased fivefold between 1995 and 2000. The index peaked at 5,048 on March 10, 2000. Then it crashed. By October 4, 2002, the NASDAQ index had returned to 1,139, losing more than three-quarters of its value. It was almost back to where it started in 1995. The Internet bubble hit the technology companies hard. A huge number ended up down the drain. It would take fifteen long years for the NASDAQ to equal its peak in the year 2000.

投机性的互联网泡沫掩盖了互联网使用量持续稳步增长的现实。在不断扩大的用户群的推动下,幸存下来的WWW公司迅速发展壮大。

The speculative Internet bubble hid the steady and continuous growth of Internet usage. Fueled by an expanding user base, the surviving WWW companies grew rapidly.

林登的产品推荐算法已被广泛模仿。他于2002年离开亚马逊。在两家初创公司和谷歌工作过一段时间后,他现在就职于微软。如今,亚马逊销售“从A到Z”的所有商品。2019年,亚马逊超越沃尔玛,成为全球最大零售商。据 《福布斯》杂志报道,杰夫·贝佐斯(亚马逊创始人兼首席执行官,任期至2021年7月)于2018年成为全球首富。他的净资产估计为1560亿美元。

Linden’s product recommendation algorithm has been extensively imitated. He left Amazon in 2002. After stints at two startups and Google, he now works at Microsoft. Today, Amazon sells everything “from A to Z.” In 2019, Amazon overtook Walmart as the world’s largest retailer. According to Forbes magazine , Jeff Bezos—Amazon’s founder and CEO until July 2021—became the world’s richest person in 2018. His net worth was estimated at $156 billion.

谷歌于2004年上市,市值达230亿美元。当时,这家公司仅成立六年。2016年,谷歌母公司Alphabet的估值接近5000亿美元。截至本文撰写之时(2019年),根据《福布斯》杂志的数据,布林和佩奇均位列美国十大富豪之列。他们的个人净资产估计分别为350亿至400亿美元。

Google went public in 2004, with a market capitalization of $23 billion. The company was only six years old. In 2016, Google’s parent company, Alphabet, was valued at nearly half a trillion dollars. At the time of writing (2019), Brin and Page are, again according to Forbes magazine, among the ten richest people in the United States. Their estimated personal net worth is $35-40 billion each.

蒂姆·伯纳斯-李于2004年被英国女王授予爵士称号,以表彰其杰出成就。2016年,他荣获ACM图灵奖。The Richest网站 估计他的身价为5000万美元。虽然这笔财富不多,但与互联网上的亿万富翁相比,简直是九牛一毛。

Tim Berners-Lee was knighted by the Queen in 2004 in recognition of his achievements. He received the ACM Turing Award in 2016.The website The Richest estimates his worth at 50 million dollars. A small fortune, but a pittance compared to the wealth of the WWW billionaires.

2002年互联网泡沫破灭时,互联网活跃用户约有5亿。网络为世界提供了前所未有的信息、在线购物和娱乐渠道。然而,一位住在宿舍的19岁学生坚信,人们真正想要的是八卦。这种洞察力加上辛勤的努力,最终让他成为了亿万富翁。

When the dot-com bubble burst (2002), there were roughly half a billion active Internet users. The Web gave the world unprecedented access to information, online shopping, and entertainment. However, a 19-year-old student living in a dormitory was convinced that what people really wanted was gossip. That insight, combined with hard work, would make him a multibillionaire.

 

 

社交媒体已然存在。它始于1979年的Usenet,以文字形式出现,后来又出现了聊天程序。2003年,LinkedIn和Facebook相继出现。用户在Facebook或Instagram上与家人、朋友和熟人分享自拍照,并通过Whatsapp或Snapchat进行交流。

Social media are here to stay. It started textually in 1979 with Usenet and later with chat programs. In 2003 LinkedIn and Facebook followed. Users share selfies on Facebook or Instagram with family, friends and acquaintances and communicate via Whatsapp or Snapchat.

9

9

Facebook 和朋友

Facebook and friends

有了所有这些数据,您应该能够得出一些结论。

With all that data you should be able to draw some conclusions.

夏洛克·福尔摩斯对阵华生医生。

Sherlock Holmes vs. Dr. Watson.

阿瑟·柯南·道尔爵士

Sir Arthur Conan Doyle

《四签名》, 1890年

The Sign of the Four, 1890

马克·扎克伯格1984年出生于纽约州白原市。小学时,父亲教他编程。后来,父亲安排了一位专业程序员来继续他的学业。高中时,扎克伯格是一位天才,注定要考上一所名牌大学。最终,他考入了哈佛大学,主修计算机科学和心理学。

Mark Zuckerberg was born in 1984 in White Plains, New York. When he was in elementary school, his father taught him how to program. Later, his father arranged for a professional programmer to further his son's education. In high school, Zuckerberg was a genius who was destined to attend one of the major universities. He ended up at Harvard University, where he chose to major in computer science and psychology.

除了对编程的热爱,扎克伯格还对人类行为有着浓厚的兴趣。他很早就意识到,大多数人都会对别人的行为着迷。这种痴迷正是日常八卦、长篇传记、名人财富和真人秀节目的核心。在哈佛大学,他开始尝试开发能够满足人类与他人联系和沟通这一基本需求的软件。

In addition to his love of programming, Zuckerberg also had an abiding interest in human behavior. He realized early on that most people are fascinated by what other people do. That obsession is at the heart of daily gossip, lengthy biographies, celebrity fortunes, and reality TV. At Harvard, he began experimenting with software that would enable the fundamental human need to connect and communicate with others.

Facebook 联合创始人马克·扎克伯格。

Facebook co-founder Marc Zuckerberg.

扎克伯格创建了一个名为Facemash的网站 。Facemash模仿了现有的一个名为“Hot Or Not”的网站 。这两个网站都并排展示了两张男生或女生的照片,并要求访问者评选出最性感的学生。Facemash 收集了投票结果,并列出了 最性感学生的排名。最具争议的是, Facemash使用了从哈佛大学网站下载的学生照片。该网站在特定学生群体中很受欢迎 但其他学生却对此感到震惊。据一份校园通讯报道,扎克伯格甚至因此受到了纪律委员会的处罚。

Zuckerberg created a website called Facemash . Facemash was modeled after an existing website called Hot Or Not . Both websites displayed side-by-side images of two male or two female students and asked the visitor to rate the most attractive. Facemash collected the votes and displayed a ranking of the hottest students. Most controversially, Facemash used photos of students downloaded from Harvard websites. The website was popular among a certain group of students, but others were scandalized. According to a campus newsletter, Zuckerberg even ended up before a disciplinary committee for it.

扎克伯格后来着手建立一个新的 社交网站。当时已经有一些类似的网站允许用户分享个人信息。早期的网站大多面向寻求联系的人。扎克伯格希望他的社交网络能够帮助哈佛学生相互交流。他的想法是,用户可以创建个人资料并发布新闻报道。这些报道并非吸引眼球的新闻,而是学生们喜欢的闲聊方式。为了规避大学规定,新网站要求用户上传个人信息。新网站——facebook.com——2004年2月上线。当时扎克伯格年仅19岁。

Zuckerberg later set about building a new social networking website. There were already a few such websites that allowed users to share personal information. Most of the earlier websites were geared toward people looking to hook up. Instead, Zuckerberg wanted his social network to help Harvard students communicate with each other. The idea was that users would create personal profiles and post news stories. These were not headline-grabbing news stories, but the kind of chitchat that students loved. To get around university rules, the new website required users to upload their own information. The new website—the facebook.com —launched in February 2004. Zuckerberg was just nineteen.

Facebook 新闻概览

Facebook's News Overview

关于Facebook的消息迅速传开。上线四天后,就有450名用户注册。学生们用这个网站做各种事情,从组织聚会、安排学习课程,甚至安排约会。扎克伯格逐渐向其他美国大学的学生开放了这个网络。6月,有人出价1000万美元收购该网站。但他对此毫无兴趣。随着用户数量的增长,扎克伯格开始安排投资,开始招聘员工,并停止了攻读博士学位。

Word quickly spread about Facebook. Four days after its launch, 450 users had registered. Students used the site for everything from organizing parties, scheduling study sessions, and inevitably, arranging dates. Zuckerberg gradually opened the network to students from other American universities. In June, he was offered $10 million for the site. He wasn’t interested at all. As the number of users grew, Zuckerberg raised investments, started hiring employees, and stopped his PhD.

最初,发现新通知的唯一方法是仔细查看用户的个人资料页面,看看是否有任何变化。通常情况下,这种搜索很浪费时间——根本找不到新东西。扎克伯格意识到,如果用户有一个页面,可以汇总好友的最新通知,会很有帮助。

Initially, the only way to spot a fresh notification was to scour users’ profile pages for changes. Typically, that scouring was a waste of time—there was nothing new to discover. Zuckerberg realized that it would be helpful for users to have a page that summarized the latest new notifications from their buddies.

八天后,Facebook 的 News Feed 算法诞生了。事实证明,该算法是该公司迄今为止面临的最大技术挑战。News Feed 不仅仅是一个新功能,它正在重塑 Facebook。

Eight days later, the Facebook News Feed algorithm was born. The algorithm proved to be the biggest technological challenge the company had ever faced. News Feed wasn’t just a new feature. It was reinventing Facebook.

这个想法是,新闻概览将为每个用户提供独特的新闻概览。该页面将列出与该用户最相关的消息。每个人都会获得不同的概览——由系统为他们个性化定制。

The idea was that News Overview would provide a unique news overview for each user. The page would list the messages that were most relevant to that user. Everyone would get a different overview – personalized for them by the system.

Facebook 于 2006 年 9 月 5 日星期二启用了 News Feed 功能。用户的反应几乎一致。大家都很讨厌它。它让人想起了跟踪。事实上,Facebook 上以前没有出现过的内容现在都看不到了。但 News Feed 让每个人的生活动态都变得更容易了解。扎克伯格似乎误判了用户对数据隐私变化的情绪反应。

Facebook activated News Feed on Tuesday, September 5, 2006. The user reaction was almost unanimous. Everyone hated it. It reminded people too much of stalking. In fact, nothing was visible that hadn't been available on Facebook before. But News Feed made it easier to see what was going on in everyone's lives. It seemed that Zuckerberg had misjudged the emotional response of users to a perceived change in the privacy of their data.

反对新闻推送的团体在 Facebook 上涌现,并蓬勃发展。讽刺的是,学生们正在使用他们所抗议的这个系统的功能。对扎克伯格来说,这充分证明了新闻推送的有效性。数据也印证了他的观点。用户在 Facebook 上花费的时间比以往任何时候都多。Facebook 道歉,增加了隐私控制,并等待着舆论平息。

Anti-News Feed groups sprang up on Facebook and flourished. Ironically, students were using the very feature of the system they were protesting. To Zuckerberg, that was proof positive that News Feed had worked. The numbers backed him up. Users were spending more time on Facebook than ever before. Facebook apologized, added privacy controls, and waited for the noise to die down.

新闻推送的核心技术挑战在于创建一种算法,能够挑选出最佳新闻故事并展示给用户。问题在于:计算机算法如何才能确定人类用户最感兴趣的内容?Facebook 新闻推送算法的细节至今仍是严格保密的。然而,在 2008 年,一些信息被公开。

The technological challenge at the heart of News Feed was to create an algorithm that could pick the best news stories to show a user. The question was: How could a computer algorithm possibly determine what a human user was most interested in? The details of Facebook's News Feed algorithm remain a closely guarded secret. In 2008, however, some information was made public.

最初的新闻推送算法被称为 EdgeRank。这个名字似乎参考了谷歌的 PageRank。Facebook 上的每一个动作都被称为一条,无论是新帖子、状态更改、评论、点、加入群组还是分享。Edge Rank 得分是通过将三个因子相乘来计算每个用户和每条边的:

The original News Feed algorithm was called EdgeRank. The name seems to be a reference to Google's PageRank. Every action on Facebook is called an edge , whether it's a new post, a status change, a comment, a like , a group join, or a share. The Edge Rank score is calculated for each user and each edge by multiplying three factors:

EdgeRank = 亲和力 × 权重 × 时间流逝。

EdgeRank = affinity × weight × time lapse.

亲和度是衡量用户与边连接程度的指标,它表明用户与创建边的人之间的距离。Facebook 上,好友之间的距离被认为比非好友更近。两个好友的共同好友越多,他们的亲和度就越高。用户之间的互动次数也会影响他们的亲和度得分。例如,如果用户经常评论彼此的帖子,亲和度就会增加。如果用户停止互动,亲和度就会随着时间的推移而下降。

Affinity is a measure of the user’s connection to the edge. It indicates how close the user is to the person who created the edge. Friends on Facebook are considered closer to each other than non-friends. The more friends the two friends have in common, the higher their affinity. The number of interactions between users also affects their affinity score. For example, affinity increases if users frequently comment on each other’s posts. Affinity decreases over time if users stop interacting with each other.

权重取决于边的类型。需要更多精力创建的边具有更高的权重。例如,评论比点赞的权重更高。

Weight depends on the type of edge. Edges that require more effort to create have a higher weight. For example, a comment carries more weight than a like .

在其他条件相同的情况下,EdgeRank 会随着时间的推移而缓慢下降,导致算法更青睐最新的帖子而不是旧的帖子。

All else being equal, EdgeRank will slowly decrease over time, causing the algorithm to favor more recent posts over older ones.

每十五分钟,系统会重新计算每个用户和每个帖子的 EdgeRank。用户的动态消息会根据帖子的 EdgeRank 分数降序排列。随着时间的推移,相对的 EdgeRank 分数会发生变化。一篇帖子可能会因为时间过长而排名下降。而另一篇帖子如果获得大量点,排名可能会上升。这种动态鼓励用户继续访问他们的概览,希望在那里看到一些新的东西。

Every fifteen minutes, EdgeRanks are recalculated for each user and each post. A user's News Feed is prepared by sorting the posts in descending order of their EdgeRank scores. Over time, the relative EdgeRank scores change. One post may be demoted as it ages. Another may rise in rank if it receives a lot of likes . This dynamic encouragesusers to keep visiting their overviews in the hope that they will see something new appear there.

新闻推送让病毒式帖子变得 流行。用户无法在 Facebook 上发布帖子。他们只需发布帖子,并希望它能在自己的社交网络中传播开来。如果帖子获得大量关注,例如点赞 或评论,其 EdgeRank 得分就会飙升。随着得分的提升,帖子将出现在更广泛的用户推送中。热门帖子可以传播到其他用户社区,就像病毒传播一样。

News Feeds made viral posts popular. Users can’t broadcast posts on Facebook. They simply post a post and hope it will spread within their social network. If a post gets a lot of attention, in the form of likes or comments, its EdgeRank score will skyrocket. As the score increases, the post will appear in a wider circle of users’ feeds. Popular posts can spread to other user communities, much like the spread of a virus.

Facebook 通过在用户帖子中穿插付费广告,将新闻推送的浏览量转化为收益。该公司于 2012 年上市,估值超过 1040 亿美元。Facebook 网站及其应用程序目前每月拥有 24 亿用户。即使算上机器人(模拟用户的程序),这个数字也占了全球人口的很大一部分。截至 2020 年,扎克伯格仍是 Facebook 的首席执行官。 《福布斯》杂志估计他的净资产约为 600 亿美元。

Facebook monetized News Feed views by interspersing user posts with paid ads. The company went public in 2012 with a valuation of more than $104 billion. The Facebook website and its apps now have 2.4 billion monthly users. Even when you factor in bots (programs that impersonate users), that’s a large portion of the world’s population. As of 2020, Zuckerberg was still Facebook’s CEO. Forbes magazine estimates his net worth at around $60 billion.

新闻推送提供了一种个性化服务,即根据个人需求定制新闻内容。虽然在林登公司为亚马逊开发推荐算法之前,互联网上每个人都可以享受个性化服务,但真正将这项技术提升到更高水平的,是为Netflix开发的算法。该算法利用机器学习来识别和挖掘海量用户数据中隐藏的模式。机器学习与 大数据的结合 ,很快将改变商业和科学。

News Feed offers a form of personalization, news content tailored to the individual. While personalization was available to everyone on the World Wide Web before Linden’s recommendation algorithm for Amazon, it was the algorithm developed for Netflix that took the technology to the next level. That algorithm used machine learning to recognize and exploit hidden patterns in large amounts of user data. Machine learning combined with big data would soon transform commerce and science.

Netflix奖

The Netflix Prize

Netflix 由里德·哈斯廷斯和马克·伦道夫于 1997 年创立。他们在美国东海岸长大,后来来到加州硅谷。两人都经历过科技行业动荡的并购浪潮,并在此过程中成为了连续创业者。他们初次相识是在哈斯廷斯的公司收购伦道夫就职的一家软件初创公司时。他们住在彼此的街区,开始拼车。在他们每天的通勤中 黑斯廷斯和伦道夫制定了一项新的商业冒险计划。

Netflix was founded in 1997 by Reed Hastings and Marc Randolph. They grew up on the East Coast of the United States but found their way to Silicon Valley in California. Both navigated the turbulent seas of mergers and acquisitions in the technology industry, becoming serial entrepreneurs in the process. They first met when Hastings' company acquired a software startup Randolph worked for. They lived in each other's neighborhood and began carpooling. During their daily commutes Hastings and Randolph devised a plan for a new business venture.

这家公司的商业计划非常具体——在线电影租赁。用户通过公司网站选择自己想看的电影。电影上线后,会以光盘(DVD)的形式寄送。观看后,顾客可以通过邮件退回DVD。

The business plan was very concrete – online movie rental. Subscribers chose movies they wanted to see through the company’s website. As they became available, the movies were shipped on disc (DVD). After watching, customers returned the DVDs by mail.

这项服务大受欢迎。订阅用户能够访问海量电影库,并享受DVD送货上门的便利。公司成功的关键在于确保客户真正喜欢他们收到的邮件中的电影。Netflix效仿亚马逊,在其网站上添加了一个推荐引擎。Netflix的推荐引擎Cinematch效果很好。然而,2006年,该公司开始寻求更好的方案。他们没有自行开发新的算法,而是采取了不同寻常的举措,举办了一场公开竞赛。该公司为第一个比Cinematch准确率高10%的推荐引擎提供了一百万美元的奖金。

The service proved popular. Subscribers appreciated having access to a large library of movies and enjoyed the convenience of having DVDs delivered to their doorstep. The key to the company's success was ensuring that customers actually enjoyed the movies they received in the mail. Following Amazon's lead, Netflix added a recommendation engine to its website. Netflix's recommendation engine, Cinematch, worked well. Nevertheless, in 2006 the company was looking for something better. Instead of developing a new algorithm itself, the company took the unusual step of holding a public contest. The company offered a million-dollar prize for the first recommendation engine that was 10 percent more accurate than Cinematch.

为了方便比赛,Netflix 提供了一个训练数据库,其中包含近 50 万名用户对 18,000 部不同电影的 1 亿条电影评分。每个数据点包含电影名称、用户名、星级(1 至 5 星)以及用户评分日期。电影名称和评分均为真实数据,但用户名已匿名,无法识别个人身份。

To facilitate the competition, Netflix provided a training database containing 100 million movie ratings given by nearly half a million customers to 18,000 different movies. Each data point consisted of the movie title, the user name, the number of stars awarded (1 to 5), and the date the user gave the rating. The movie titles and ratings were real, but the user names were anonymized so that individuals could not be identified.

此外,Netflix 还发布了第二个数据集,用于资格认定。其内容与练习数据集相同,只是 Netflix 保留了星级评分。该资格认定数据集规模小得多,仅包含 280 万个项目。

Additionally, a second dataset was released for qualification purposes. Its contents were identical to the practice dataset except that Netflix withheld the star ratings. That qualification dataset was much smaller, with only 2.8 million items.

比赛的目标是构建一个推荐系统,能够准确预测入围影片池中已编辑的电影评分。Netflix 会将参赛者提供的预估评分与隐藏的用户评分进行比较。参赛者的预估评分通过测量预测误差(预测评分与实际评分之间的平均平方差)进行评估。

The goal of the competition was to build a recommendation system that could accurately predict the redacted movie ratings in the qualifying pool. Netflix would compare the estimates provided by a contestant with the hidden user-assigned ratings. The entrants’ estimates were evaluated by measuring the prediction error—the average squared difference between the predicted and actual ratings.

百万美元的奖金吸引了众多业余爱好者和严肃的学术研究人员。就学术界而言,数据收集 价值连城。毕竟,获取如此规模的真实数据集非常困难。从一开始,大多数人就认为提高 10% 的精度只是小事一桩。他们低估了 Cinematch 的有效性。

The million dollar prize attracted hobbyists and serious academic researchers alike. As far as the academics were concerned, the data collection worth its weight in gold. After all, it was very difficult to obtain real-world data sets of that size. From the beginning, most people thought that a 10 percent improvement in precision was a trivial problem. They underestimated the effectiveness of Cinematch.

评级预测有多种方法。比赛中最有效的技巧是尽可能多地结合不同的预测。用预测术语来说,任何有助于预测的信息都是 最终计算中必须考虑的因素。

Rating predictions can be made in a variety of ways. The most effective technique used in the competition was to combine as many different predictions as possible. In prediction jargon, any information that can be used as an aid to the prediction is a factor that must be taken into account in the final calculation.

最简单的因素是训练数据集中电影的平均评分。这是看过某部电影的所有用户的平均值。

The simplest factor is the average rating of a movie in the training dataset. That is the average of all users who have seen a particular movie.

另一个需要考虑的因素是被预测评分用户的慷慨程度。该用户的慷慨程度可以通过其平均评分与所有用户平均评分之间的差值来计算。由此得出的慷慨程度修正值可以添加到电影的预测平均评分中。

Another factor that can be considered is the generosity of the user whose rating is being predicted. This user generosity can be calculated from the difference between their average rating and the average rating of all users. The resulting generosity correction can be added to the average rating predicted for a movie.

另一个因素是那些通常给出与目标用户相同评分的用户对电影的评分。在训练数据文件中搜索这些用户。然后,预测结果就是他们对电影评分的平均值。

Another factor is the ratings of a movie by users who usually give the same rating as the user in question. These users are searched for in the training data file. The prediction is then the average of their ratings of the movie.

另一个因素涉及用户对类似电影的评分。再次搜索训练数据文件。这次,提取与相关节目评分相似的电影。计算这些电影的用户评分平均值。

Yet another factor concerns the ratings that the user gives to similar movies. Again, the training data file is searched. This time, movies that were specifically given similar ratings to the program in question are extracted. The average of the user rating for those movies is calculated.

这些因素以及其他可用因素通过加权求和进行组合。每个因素乘以一个数值或权重。这些权重控制着这些因素的相对重要性。权重高表示相关因素在确定最终预测方面更为重要。权重低表示该因素不太重要。将加权后的因素相加,得出最终预测。

These factors, and other available factors, are combined by weighting and summing. Each factor is multiplied by a numerical value or weight. These weights control the relative importance of the factors. A high weight means that the associated factor is more important in determining the final prediction. A low weight means that the factor is less important. The weighted factors are added together to give the final prediction.

综上所述,预测算法如下:

In summary, the prediction algorithm is as follows:

将训练数据文件和资格数据文件作为输入。

Take as input the training data file and the qualification data file.

对资格数据文件中的每个用户电影组合重复此操作:

Repeat for each user-movie combination in the qualification data file:

对每个因素重复:

Repeat for each factor:

利用该因素预测用户的电影。

Predict the user's movie with that factor.

一旦评估了所有因素,就停止迭代。

Stop iterating once all factors have been evaluated.

权衡因素预测并将它们加起来。

Weigh the factor predictions and add them up.

为该用户和电影提供最终预测。

Provide the final prediction for that user and movie.

当所有用户-电影组合均已预测完毕时停止迭代。

Stop iterating when all user-movie combinations have been predicted.

想象一下,该算法试图预测朱莉娅对《玩具总动员》的评分(见下表)。第一个因素只是训练数据集中《玩具总动员》的平均评分。这给出了 3.7 星的估计值。第二个因素——朱莉娅的慷慨程度——是通过计算朱莉娅的平均评分并减去训练数据集中相同电影的平均评分获得的。朱莉娅的平均评分是 4,而相同电影的平均评分是 3.1。因此,朱莉娅的慷慨奖励是 +0.9。将其添加到总体平均值中得到 4.6 星。然后在数据集中搜索之前给出与朱莉娅相似评分的用户。显然是 Jan 和 Lucia。他们给了《玩具总动员》五颗星,所以这是另一个因素。第四个因素需要找到朱莉娅看过的通常评分与《玩具总动员》相似的电影。显然是《海底总动员》《超人总动员》。朱莉娅给这两部电影的平均评分是 4.5 星。这是另一个因素。最后,我们对朱莉娅的 玩具总动员评分有四个估计: 3.7、4.0、5 和 4.5 星。

Imagine that the algorithm is trying to predict Julia’s rating for Toy Story (see the table below). The first factor is simply the average rating for Toy Story in the training dataset. That gives an estimate of 3.7 stars. The second factor – Julia’s generosity – is obtained by calculating Julia’s average rating and subtracting the average rating for the same movies in the training dataset. Julia’s average rating is 4, while the average for the same movies is 3.1. Therefore, Julia’s generosity bonus is +0.9. Adding that to the overall average gives 4.6 stars. The dataset is then searched for users who have previously given ratings similar to Julia. That’s clearly Jan and Lucia. They gave Toy Story five stars, so that’s another factor. The fourth factor requires finding movies that Julia has seen that have typically received ratings similar to Toy Story . That’s clearly Finding Nemo and The Incredibles. Julia gave those two movies an average rating of 4.5 stars. That’s another factor. In the end, we have four estimates for Julia's Toy Story rating: 3.7, 4.0, 5, and 4.5 stars.

电影分级数据文件

FILM RATING DATA FILE

 

 

玩具总动员

Toy Story

海底总动员

Finding Nemo

超人特工队

The Incredibles

《冰雪奇缘》

Frozen

Jan

5

5

4

4

4

4

2

2

朱莉娅

Julia

?

4

4

5

5

3

3

基斯

Kees

1

1

2

2

1

1

4

4

露西亚

Lucia

5

5

4

4

5

5

2

2

如果我们认为最后两个因素通常最可靠,那么我们可以分别使用权重 0.1、0.1、0.4 和 0.4。乘法和加法运算得出的最终预测值为 4.6 星。朱莉娅绝对应该 去看《玩具总动员》 !

If we consider those last two factors to be typically the most reliable, then we could use the weights 0.1, 0.1, 0.4, and 0.4. Multiplying and adding gives a final prediction of 4.6 stars. Julia should definitely go see Toy Story !

虽然许多参赛队伍都遵循了这种通用方法,但他们所使用的具体特征却各不相同。60 个或更多特征的情况并不少见。参赛队伍还尝试了各种各样的相似性度量和预测组合方法。在大多数系统中,预测的细节由数值控制。这些数值(或参数)随后经过微调,以改进预测结果。例如,权重参数的调整可以调整各个因素的相对贡献。一旦选定了因素,精确的评估预测就取决于找到最佳参数值。

Although many teams participating in the competition followed this general approach, they varied in the specific features they used. Sixty or more features was not uncommon. The teams also experimented with a wide range of similarity measures and ways of combining predictions. In most systems, the details of the predictions were controlled by numerical values. These numerical values, or parameters , were then finely tuned to improve the prediction results. For example, the weight parameters were adjusted to adjust the relative contributions of factors. Once the factors are chosen, the precise evaluation prediction depends on finding the best parameter values.

为了确定最佳参数值,团队转向机器学习(参见 第 5 章)。首先,团队留出训练数据集的一个子集用于验证。接下来,团队猜测参数值。运行预测算法以获得验证数据集中评分的预测。然后测量这些估计值的预测误差。然后稍微调整参数,希望这能够减少预测误差。这些预测、评估和参数调整步骤重复多次。跟踪参数值和预测误差之间的关系。基于该关系,调整参数以最小化误差。如果无法进一步减少误差,则终止训练并冻结参数值。这些最终参数值用于预测资格数据集中的缺失评分,并将结果提交给 Netflix 进行仲裁。

To determine optimal parameter values, teams turned to machine learning (see Chapter 5 ). To begin, a team sets aside a subset of the training dataset for validation . Next, the team guesses the parameter values. A prediction algorithm is run to obtain predictions of the ratings in the validation dataset. The prediction error for those estimates is then measured. The parameters are then adjusted slightly, hoping that this will reduce the prediction error. These steps of prediction, evaluation, and parameter adjustment are repeated many times. The relationship between the parameter values ​​and the prediction error is tracked. Based on that relationship, the parameters are adjusted to minimize the error. If no further reduction in error can be obtained, training is terminated and the parameter values ​​are frozen. Those final parameter values ​​are used to predict missing ratings in the qualification dataset, and the results are submitted to Netflix for arbitration.

总而言之,训练算法的工作原理如下:

All in all, the training algorithm works as follows:

将训练数据文件和验证数据文件作为输入。

Take as input the training data file and the validation data file.

猜测最佳参数值。

Guess the best parameter values.

重复以下步骤:

Repeat the following:

对验证数据文件中的所有元素运行预测算法。

Run the prediction algorithm for all elements in the validation data file.

将预测评分与实际评分进行比较。

Compare the predicted ratings with the actual ratings.

调整参数以减少误差。

Adjust parameters to reduce the error.

如果没有获得进一步的改进,则停止重复。

Stop repeating if no further improvements are obtained.

提供预测误差最小的参数。

Provide the parameters that give the minimum prediction error.

机器学习方法的优点在于,计算机可以尝试比人类所能尝试的更多的参数组合。

The beauty of the machine learning approach is that the computer can experiment with many more parameter combinations than is humanly possible.

起初,各团队进展迅速。最佳算法的得分很快超越了 Cinematch,分别高出 6%、7% 和 8%。随后,准确率便停滞不前。各团队转向验证结果,试图找出问题所在。这个绊脚石是一个后来被称为“大人物拿破仑”的问题。事实证明, 《大人物拿破仑》是最难预测评分的电影。大多数电影的评分都相当容易预测,因为数据库中有类似的数据。《大人物拿破仑》的问题在于它与其他电影截然不同。它是一个异类,一部成为热门电影的独立喜剧。人们要么喜欢它,要么讨厌它。它是那种朋友们可以聊上几个小时的电影。

At first, the teams made rapid progress. The best algorithms quickly outscored Cinematch by 6, 7, and 8 percent. Then accuracy plateaued. The teams turned to the validation results to figure out what had gone wrong. The stumbling block was a problem that became known as the Napoleon Dynamite problem. Napoleon Dynamite proved to be the hardest movie to predict a rating for. Most movie ratings were fairly easy to predict because there was something similar in the database. The problem with Napoleon Dynamite was that it was unlike any other movie. It was an outlier, an independent comedy that had become a cult hit. People either loved it or hated it. It was the kind of movie that friends could talk about for hours.

虽然 《大人物拿破仑》是最难预测的电影,但它并非唯一一部。还有太多难以预测的电影评分,导致预测过程戛然而止。一些参与者开始质疑,10% 的提升是否可能实现。

Although Napoleon Dynamite was the hardest film to predict, it wasn’t the only one. There were enough hard-to-predict movie ratings to bring progress to a grinding halt. Some participants began to question whether a 10 percent improvement was even possible.

比赛开始两年后,一些参赛者意识到仍有进步的空间。每支队伍都 设计了一种自定义算法。每种算法都有其自身的优缺点。在许多情况下,竞争算法的优缺点是互补的。团队意识到,通过组合多种算法提供的估计值可以提高精度。同样,机器学习被用来确定组合不同预测的最佳方法。

Two years after the competition began, a handful of participants realized that there was still a way to make progress. Each team had designed a custom algorithm. Each algorithm had its own strengths and weaknesses. In many cases, the strengths and weaknesses of competing algorithms were complementary. The teams realized that precision could be increased by combining the estimates provided by multiple algorithms. Again, machine learning was used to determine the best way to combine the different predictions.

精度再次开始攀升。算法差异越大,组合效果似乎就越好。各团队争相将自己的算法与其他取得良好效果的解决方案集成。竞争达到了高潮,团队之间并购风起云涌。

Precision began to creep upward again. The more different the algorithms were, the better the combined results of a combination seemed to be. Teams rushed to integrate their algorithms with other solutions that were producing good results. The competition reached a climax with overwhelming mergers and acquisitions of teams.

2009年9月21日,Netflix奖被Bellkor的Pragmatic Chaos团队夺得。该团队的成绩比Cinematch团队提高了10.06%。该团队由来自AT&T Research的KorBell、来自奥地利的Big Chaos和来自加拿大的Pragmatic Theory组成。团队共有七人,来自世界各地,主要通过电子邮件沟通。当然,合并意味着百万美元的奖金必须被七分。总而言之,这仍然是一个丰厚的回报。但对于第二支队伍来说,这却非常不幸,他们在三年后就因为迟到了十分钟而落败。

On September 21, 2009, the Netflix prize was won by Bellkor's Pragmatic Chaos. The team had achieved a 10.06% improvement over Cinematch. The group was an amalgamation, consisting of KorBell from AT&T Research, Big Chaos from Austria and Pragmatic Theory from Canada. In total, the group consisted of seven people, working from all over the world, mainly communicating via e-mail. Of course, the merger meant that the million dollar prize had to be divided by seven. All in all, it was still a well-paid result. And very unlucky for the second team, who lost after three years because they were ten minutes late.

令人惊讶的是,Netflix 决定不使用获胜算法。该公司已经用比赛早期阶段的获胜算法取代了 Cinematch。Netflix 认为 8.43% 的提升已经足够好了,于是就此作罢。

In a surprising twist, Netflix decided not to use the winning algorithm. The company had already replaced Cinematch with the winner of an earlier phase of the competition. Netflix figured that an 8.43% improvement was good enough and left it at that.

本次比赛取得了圆满成功,共有来自186个国家的41305支队伍,51051人报名参赛。

The competition was a resounding success. A total of 51,051 people from 186 countries organized in 41,305 teams registered.

就在竞争激烈之际,Netflix 宣布将从 DVD 租赁业务转向互联网在线流媒体电影。不久之后,DVD 租赁业务全面暂停。如今,Netflix 是全球最大的互联网电视网络,拥有超过 1.37 亿用户。马克·伦道夫于 2002 年离开 Netflix。他目前在多家科技公司担任董事。里德·哈斯廷斯至今仍担任 Netflix 的首席执行官。他曾在 Facebook 和微软董事会任职多年。2019 年,哈斯廷斯在《福布斯》亿万富翁榜上排名第 504 位。

While the competition was going on, Netflix announced that it was moving from DVD rentals to streaming movies online over the Internet. Not long after, DVD rentals were suspended altogether. Today, Netflix is ​​the world's largest Internet television network with over 137 million subscribers. Marc Randolph left Netflix in 2002. He now serves on the boards of several technology companies. Reed Hastings remains CEO of Netflix to this day. He served on the boards of Facebook and Microsoft for several years. In 2019, Hastings was ranked #504 on the Forbes Billionaires List.

麦肯锡最近报告称,Netflix 上观看的电影和节目中,高达 75% 是基于其推荐系统。Netflix 估计,个性化和电影推荐服务通过提高客户忠诚度,每年可为公司节省 10 亿美元。

McKinsey recently reported that an astonishing 75 percent of movies and shows viewed on Netflix are based on its recommendation system. Netflix estimates that personalization and movie recommendation services save the company $1 billion annually through increased customer loyalty.

2009 年,人们开始意识到大数据与机器学习相结合几乎可以预测任何事情。

In 2009, it began to seem that big data coupled with machine learning could predict almost anything.

Google 流感趋势

Google Flu Trends

当年,《自然》杂志发表的一篇引人注目的论文指出,对谷歌搜索页面的搜索数据进行分析,可以追踪美国流感样疾病的传播情况。这个概念直观上很有吸引力。感觉不舒服的人经常使用谷歌搜索引擎来了解更多症状。用户流感相关搜索量的激增,可能是流感爆发的良好指标。

That year, a striking paper in Nature suggested that data analysis applied to searches on the Google search page could track the spread of influenza-like illnesses in the United States. The concept was intuitively appealing. People who are feeling sick often use Google’s search engine to learn more about their symptoms. A spike in user searches related to the flu could be a good indicator of an outbreak of the disease.

这真是一个有趣的事实。每年的流感季都是一个重大的公共卫生问题。每年全球都有数千万例流感病例,数十万人死亡。此外,还存在着一种新的、毒性更强的流感病毒不断出现的风险。1917年和1918年的流感大流行造成2000万至4000万人死亡,超过了第一次世界大战的遇难人数。

That was an interesting fact. The annual flu season is a major public health problem. Every year, there are tens of millions of cases of flu worldwide, with hundreds of thousands of deaths. There is also a constant risk that a new, more virulent form of the disease will emerge. The flu pandemic of 1917 and 1918 killed between 20 and 40 million people – more than the number of victims of World War I.

论文作者利用机器学习将谷歌搜索与实际流感统计数据关联起来。流感统计数据由美国疾病控制与预防中心 (CDC) 提供。CDC 追踪美国所有医院和医疗中心的患者就诊情况。研究团队将同一地区流感相关就诊比例的数据与同一时间段内的谷歌搜索数据进行了比较。该算法考虑了 5000 万次符合条件的谷歌搜索,并将其发生模式与观察到的流感统计数据进行了比较。研究人员发现,有 45 次搜索的发生模式与 CDC 统计数据中的流感爆发情况高度吻合。这些搜索随后被用来预测流感。

The authors of the paper used machine learning to correlate Google searches with actual flu statistics. The flu statistics were provided by the CDC, the Centers for Disease Control and Prevention in the United States. The CDC tracks all patient visits to hospitals and medical centers in the United States. The research team compared regional data on the percentage of flu-related visits to a doctor with Google searches in the same area over the same time period. The algorithm considered 50 million eligible Google searches and compared their patterns of occurrence with observed flu statistics. The researchers found 45 searches whose patterns of occurrence matched the flu outbreaks in the CDC statistics well. These searches were then used to predict the flu.

该团队通过预测完全不同时间段内流感相关就诊人数的百分比来评估他们的算法。他们发现,该算法能够准确地提前一到两周预测出美国疾病控制与预防中心的数据。这项研究被认为是成功的。似乎可以通过分析谷歌搜索来预测流感。为了帮助医疗机构,谷歌随后推出了“谷歌流感趋势”网站,提供最新的流感病例数量估计。

The group evaluated their algorithm by predicting the percentage of flu-related visits to a doctor during a completely different time period. They found that the algorithm consistently predicted the CDC data exactly one or two weeks in advance. The study was considered a success. It seemed that the flu could be predicted by analyzing Google searches. To help medical institutions, Google then launched Google Flu Trends, a website that provided up-to-date estimates of the number of flu cases.

这项举措广受赞誉。大数据和机器学习正在全国范围内免费提供最新的医疗信息。然而,一些科学家对此表示怀疑。该研究的某些方面引发了担忧。该算法是基于流感季节数据进行训练的。但如果这45次搜索与流感季节而非流感本身相关呢?原始论文指出,搜索查询“高中篮球”与CDC流感数据高度匹配。高中篮球赛季恰逢冬季流感季节,但这并不意味着人们感染了流感。研究人员排除了所有关于篮球的搜索,但如果数据中隐藏着其他季节性联系呢?

The initiative was widely praised. Big data and machine learning were delivering free, up-to-date medical information on a national scale. Still, some scientists were skeptical. Some aspects of the study raised concerns. The algorithm had been trained on flu season data. But what if those 45 searches were related to the season rather than the flu itself? The original paper noted that the search query “high school basketball” matched the CDC flu data well. High school basketball season coincides with the winter flu season, but that’s not a sign that people have the flu. The researchers had excluded all searches about basketball, but what if there were other seasonal connections hidden within the data?

在正常流感季节之外爆发的甲型流感 (H1N1) 疫情,首次为检验所有说法和反驳提供了机会。那次疫情始于夏季而非冬季,并分为两波。这一次,算法的预测与 CDC 的数据不符。为此,团队调整了训练数据集,纳入了流感季节期间和流感季节之外的流感病例。此外,还纳入了不太常见的搜索词。经过这些调整,修订后的算法准确预测了 H1N1 疫情的两波。

An outbreak of influenza A (H1N1) outside the normal flu season provided the first opportunity to test all the claims and counterclaims. That epidemic began in the summer instead of the winter and consisted of two waves. This time, the algorithm’s predictions did not match the CDC data. In response, the team adjusted the training dataset to include flu cases both during and outside the flu season. They also included less common searches. After these adjustments, the revised algorithm accurately predicted both waves of the H1N1 epidemic.

一切看起来都很好,直到2013年2月《自然》杂志发表了一篇论文。 那年冬天,流感季来得早——是2003年以来最早的一次——而且比往年更严重,死亡人数异常高,尤其是在老年人群体中。谷歌流感趋势高估了美国疾病控制与预防中心(CDC)数据的峰值,高估幅度超过50%,这是一个巨大的错误。很快,谷歌流感趋势又出现了更多错误。事实上,一个研究小组表明,谷歌流感趋势的预测准确率甚至低于今天的流感预测。 该数据将基于美国疾病控制与预防中心两周前的数据。在一片混乱中,谷歌流感趋势被关闭。

Everything looked good until a paper appeared in Nature in February 2013. The flu season had hit early that winter—the earliest since 2003—and was worse than normal, with an unusually high number of deaths, especially among the elderly. Google Flu Trends overestimated the peak in the CDC data by more than 50 percent—a huge error. Soon, more Google Flu Trends errors were reported. In fact, a research group showed that Google Flu Trends’ predictions were less accurate than if you had used today’s flu forecasts would be based on CDC data from two weeks earlier. Amid all the commotion, Google Flu Trends was shut down.

到底出了什么问题?

What had gone wrong?

回想起来,最初的研究用于训练的 CDC 数据太少了。CDC 数据太少,而搜索次数又如此之多,以至于有些搜索必须与数据匹配。其中许多匹配都是随机的。统计数据似乎产生了匹配,但这些搜索与某人是否患有流感无关。换句话说,搜索和流感数据之间存在相关性,但没有因果关系。其次,训练数据中捕捉到的流行病特征的变异性太小。流行病往往发生在一年中的同一时间,并以相似的方式传播。该算法没有学到任何有关异常疫情的知识。任何偏离常态的行为都会导致它迷失方向。第三,媒体对 2013 年死亡事件的过度关注和公众强烈抗议可能导致了流感搜索数量的异常,进而导致算法超调。

In retrospect, the original study used too little CDC data for training. There was so little CDC data and so many searches that some searches simply had to match the data. Many of those matches were random. The statistics seemed to produce matches, but those searches were not a function of someone having the flu. In other words, there was a correlation between the searches and the flu data, but not a causal relationship. Second, there was too little variability in the epidemic characteristics captured in the training data. The epidemics tended to occur at the same time of year and spread in similar ways. The algorithm had not learned anything about anomalous outbreaks. Any deviation from the norm caused it to lose track. Third, the excessive media attention and public outcry surrounding the 2013 deaths likely led to a disproportionate number of flu searches, which in turn caused the algorithm to overshoot.

底线是,机器学习算法的优劣取决于它们提供的训练数据。

The bottom line is that machine learning algorithms are only as good as the training data they provide allows them to be.

自谷歌流感趋势发布以来,临近预报(字面意思是“发送当下信息”,表明当前趋势)的科学 取得了显著进展。如今,人们可以通过联网数据收集设备和分析算法,大规模、低成本地了解当前情况。推特消息的情绪分析被用来预测电影上座率和选举结果。高速公路收费站的收费标准被用来估算当前的经济活动。智能手机中的运动传感器已被用于追踪地震。毫无疑问,未来疾病流行的临近预报将再次由更可靠的健康传感器进行。

The science of nowcasting —literally, now-sending, indicating current trends—has advanced significantly since Google Flu Trends. Current conditions are now determined at scale and low cost using networked data-gathering devices and analytical algorithms. The sentiment analysis of Twitter messages is used to predict movie attendance and election results. Highway tolls are used to estimate current economic activity. Motion sensors in smartphones have been tracked to detect earthquakes. No doubt, in the future, the nowcasting of disease epidemics will again be performed with more reliable health sensors.

与此同时,在 2005 年,也就是 Netflix 奖推出的前一年,一群 IBM 高管正在寻找另一场精彩的计算能力展示。1997 年,IBM 的“深蓝”计算机击败了世界象棋冠军加里·卡斯帕罗夫,成为全球头条新闻。这场胜利更多地与……的设计有关。当时,计算机芯片基于新的算法。然而,那件事却是计算机科学史上的一个里程碑。IBM 想要在新千年找到继任者。这项挑战必须精心挑选——一个看似不可能的壮举,必须吸引公众的关注。这才是真正轰动的事情……

Meanwhile, in 2005, a year before the Netflix Prize launched, a group of IBM executives were on the hunt for another spectacular demonstration of computing power. In 1997, IBM's Deep Blue computer's defeat of world chess champion Garry Kasparov made headlines around the world. That victory had more to do with the design ofthe computer chip then on new algorithms. Yet that event was a milestone in the history of computer science. IBM wanted a successor in the new millennium. The challenge had to be well chosen – a seemingly impossible feat that had to attract the attention of the general public. Something truly sensational…

 

 

2011年,一档电视智力竞赛节目中,算法与脑细胞展开较量。人工智能选手沃森的形象是一个带有感叹号的地球仪。技术挑战包括深度分析和自然语言处理。

In 2011, algorithms competed against brain cells in a television quiz show. The artificial contestant, Watson, was represented by a globe with exclamation marks. Technical challenges included deep analysis and natural language processing.

10

10

美国最受欢迎的智力竞赛节目

America's Favorite Quiz Show

我本人欢迎我们的新计算机霸主。

I myself welcome our new computer overlords.

肯·詹宁斯

Ken Jennings

关于 《危险边缘!》, 2011

About Jeopardy!, 2011

IBM 的托马斯·J·沃森研究中心坐落在纽约约克镇高地一栋充满未来感的建筑内。这座建筑低矮的半圆形立面从入口延伸至建筑远端的消失点。三层高的黑色玻璃窗俯瞰着树木繁茂的公园。这座 IBM 研究中心的总部因其在电子和计算领域一系列历史性突破而闻名。然而,与往常不同的是,2011 年初雪时,沃森中心却成了一档电视智力竞赛节目的举办地。

IBM’s Thomas J. Watson Research Center is housed in a futuristic building in Yorktown Heights, New York. The building’s low, semicircular façade extends from the entrance to vanishing points at the far ends of the structure. Three-story glass windows, framed in black frames, look out onto a wooded park. This headquarters for IBM Research is famous for a series of historic breakthroughs in both electronics and computing. Out of character, the Watson Center was the setting for a television quiz show amid early snow in 2011.

《危险边缘!》(Jeopardy! )在美国家喻户晓。该节目自1964年以来几乎连续播出。每期节目都有三名选手争夺现金奖励,最快按下按钮的选手将获得答案。《危险边缘!》的独特之处在于它的独特之处!该程序的规则是,游戏主持人给出“答案”,玩家必须提出“问题”。实际上,给出的“答案”是隐秘的线索。玩家的答案以问题的形式给出。例如,线索必须:

Jeopardy! is a household name in the United States. The program has been on the air almost continuously since 1964. In each episode, three contestants compete for cash prizes, and the fastest to press the buzzer button gets to give an answer. The unique feature of Jeopardy!the program is that the game master gives the 'answer' and the players have to ask the 'questions'. In reality, the 'answers' given are cryptic clues. The players' answers are given as questions. For example, the clue must:

传说它是由圣母玛利亚捐赠的

A legend says that it was donated by the Lady of the

亚瑟王死后,他又被扔回了湖里。

More and was thrown back into the lake after the death of King Arthur.

给出以下答案:

Giving the following answer:

Excalibur 是什么?

What is Excalibur?

2011年,IBM 冒险尝试了这项游戏。该公司开发了一台可以玩《危险边缘!》(Jeopardy!)的计算机,名为“沃森”(Watson)。沃森与历史上最优秀的两位《危险边缘!》选手 ——肯·詹宁斯(Ken Jennings)和布拉德·鲁特(Brad Rutter)展开对决。奖金高达百万美元。

In 2011, IBM took a chance on the game. The company had developed a computer that could play Jeopardy!, called Watson. Watson was pitted against two of the best Jeopardy! players in history – Ken Jennings and Brad Rutter. The prize was a whopping million dollars.

肯·詹宁斯保持着该节目连续获胜次数最多的纪录——74期。在此期间,他获得了250万美元的奖金。现年36岁的詹宁斯在成功 参加《危险边缘》节目之前是一名电脑程序员。

Ken Jennings held the record for the most consecutive wins on the show—74 episodes. Along the way, he had collected $2.5 million in prize money. Jennings, now 36, was a computer programmer before his successful run on Jeopardy!

布拉德·拉特(Brad Rutter)获得了《危险边缘!》(Jeopardy! )历史上最高的奖金——325万美元。拉特比詹宁斯小四岁,在首次参加这档智力竞答节目之前,曾在一家唱片店工作。

Brad Rutter had the most prize money in Jeopardy! history— $3.25 million. Rutter was four years younger than Jennings and worked in a record store before his first appearance on the quiz show.

IBM Jeopardy Challenge 起源于六年前。当时,IBM 的高管们正在寻找一场精彩的计算机科学盛会。他们希望这项赛事能够激发公众的想象力,并展示 IBM 最新机器的性能。

The IBM Jeopardy Challenge had its roots six years earlier. At the time, IBM executives were looking for a spectacular computer science event. They wanted something that would capture the public's imagination and showcase the capabilities of the latest IBM machines.

考虑到这一点,IBM 研究总裁保罗·霍恩参加了在当地一家餐馆举行的公司郊游。用餐进行到一半时,其他食客纷纷离开餐桌,聚集在吧台。他转身问同事:“发生什么事了?” 霍恩得知,电视上那些人都在看《危险边缘!》(Jeopardy!)。肯·詹宁斯正处于破纪录的连胜状态。全国一半的人都想看看他能不能坚持下去。这时,霍恩沉默了一会儿,心想电脑能不能玩《危险边缘》!

With that in mind, IBM Research President Paul Horn attended a company outing at a local restaurant. Halfway through the meal, other diners left their tables en masse and gathered at the bar. He turned to his colleagues and asked, "What's going on?" Horn was told that all those people on the television were watching Jeopardy!. Ken Jennings was on a record-breaking winning streak.Half the country wanted to see if he could keep it up. At that, Horn was silent for a moment, wondering if a computer could play Jeopardy!

回到中心后,他向团队提出了这个想法。他们很讨厌。大多数研究人员认为计算机在《危险边缘!》(Jeopardy!)节目中毫无胜算。节目主题太过宽泛,问题过于隐晦,充斥着双关语、笑话和双关语——所有这些都是计算机无法处理好的。尽管如此,仍有少数工作人员决定接受这个想法。

Back at the Center, he pitched the idea to his team. They hated it. Most researchers thought a computer wouldn’t stand a chance at Jeopardy!. The topics were far too broad. The questions were too cryptic. There were puns, jokes, and double entendres—all things computers can’t handle well. Nevertheless, a handful of staff members decided to take it on.

其中一位志愿者戴夫·费鲁奇(Dave Ferrucci)后来成为该项目的首席研究员。他毕业于纽约伦斯勒理工学院,博士毕业后就进入IBM研究院工作。他的专长是知识表示和推理。他需要这方面的专业知识——这是迄今为止最艰巨的自然语言处理和推理挑战。

One of the volunteers, Dave Ferrucci, later became the principal investigator on the project. He had graduated from Rensselaer Polytechnic Institute in New York, and had gone to work at IBM Research right after his PhD. His specialty was knowledge representation and reasoning. He would need that expertise – this was the toughest natural language processing and reasoning challenge yet.

IBM 的第一个原型基于团队的最新研究成果。该设备的表现与五岁儿童相当。这项挑战并非易事。IBM 研究院的 25 位科学家在接下来的四年里致力于打造 Watson。

IBM’s first prototype was based on the team’s most recent research. The device played about as well as a five-year-old child. The challenge would not be easy. Twenty-five scientists at IBM Research would spend the next four years building Watson.

2009年,IBM 对这个项目充满信心,于是联系了《危险边缘!》(Jeopardy!)节目的制作人,并提议对沃森进行测试。节目的制作人安排了一场测试,对手是两名人类。沃森的表现远非理想。他的答案飘忽不定——有些正确,有些荒谬。沃森很快就成了游戏主持人的笑柄。计算机才是笑柄。机器当时还未准备好。

In 2009, IBM felt confident enough in the project to contact the producers of Jeopardy! and propose testing Watson. The show’s creators arranged a test with two human opponents. Watson did far from well. His answers were erratic—some were correct, some were absurd. Watson soon became the butt of the game host’s jokes. The computer was the joker. The machine wasn’t ready yet.

一年后,IBM 再次尝试。这一次,Watson 得到了电视节目制作人的认可。

IBM tried again a year later. This time, Watson got the approval of the producers of the television program.

球已被踢出。

The ball had been kicked.

比赛在沃森中心录制,并连续三天(2011 年 2 月 14 日至 16 日)播出。

The match was taped at the Watson Center and then broadcast over three consecutive days (February 14-16, 2011).

主持人是《危险边缘!》(Jeopardy! )的常驻主持人亚历克斯·特雷贝克(Alex Trebek)。他身着灰色西装、粉色衬衫、红色领带,戴着金丝框眼镜,站在舞台中央,一副沉稳优雅的形象。他灰白的头发修剪得整整齐齐,棕色的双眼专注而警觉。他清澈的声音引人注目。在艳丽的紫蓝色背景左侧,一块巨大的屏幕上显示着游戏棋盘。右侧是 玩家,在他们各自的栏目后面显示他们的名字和总奖金。

The host is Jeopardy! 's regular host , Alex Trebek. Dressed in a gray suit, pink shirt, red tie, and wire-rimmed glasses, he stands center stage—the picture of calm elegance. His gray hair is neatly trimmed, his brown eyes focused and alert. His clear voice commands attention. A giant screen to the left of the gaudy purple and blue backdrop displays the game board. To the right are the players, behind their individual columns displaying their names and total prize money.

詹宁斯和拉特之间是一台电脑显示器,上面显示着一幅动画。那幅蓝色的卡通世界图像顶部布满了感叹号,这就是沃森的可见形态,也就是 电脑的化身 。机器的机械拇指暗示性地放在蜂鸣器按钮上。詹宁斯系着黄色领带,身穿淡紫色衬衫和深色夹克,红棕色的头发分缝。拉特衬衫敞开,里面是一件黑色夹克,夹克上装饰着时髦的方形口袋巾。他的头发是深棕色的,胡子介于艺术家的胡茬和大胡子之间。房间里挤满了 IBM 的高管、研究人员和工程师。这群极具党派色彩的人群气氛紧张、喧闹而又充满热情。这对沃森来说是一场主场比赛。

Between Jennings and Rutter is a computer monitor showing an animated image. That image—a blue cartoon of the world crowned with exclamation points—is Watson’s visible form—the computer’s avatar . The machine’s robotic thumb rests suggestively on the buzzer button. Jennings wears a yellow tie, lilac shirt, and dark jacket, with a parting in his reddish-brown hair. Rutter wears his shirt open, under a black jacket adorned with a stylish square pocket square. His hair is dark brown. His facial hair is somewhere between an artistic stubble and a full beard. The room is filled with IBM executives, researchers, and engineers. The highly partisan crowd is tense, boisterous, and enthusiastic. This is a home game for Watson.

拉特选择一个类别。特雷贝克读出当天的第一条线索。同时,一份相应的文本文件被传递给沃森。线索内容如下:

Rutter chooses a category. Trebek reads the first clue of the day. At the same time, a corresponding text file is passed to Watson. The clue reads:

表示有利位置或信仰的四个字母的单词。

Four-letter word for a vantage point or a belief.

拉特是第一个按下蜂鸣器按钮的人:

Rutter is the first with the buzzer button:

什么是视图?

What is a view?

对了。给拉特两百美元。特雷贝克继续说道:

Right. Two hundred dollars for Rutter. Trebek continues:

四个字母的单词,表示马头上的铁配件或赌场里的发牌箱。

Four letter word for the iron fitting on the head of a horse or a card dealing box in a casino.

这次 Watson 是第一个:

This time Watson is first:

什么是鞋?

What is a shoe?

对了。给沃森四百美元。电视摄像机捕捉到了费鲁奇的笑容。

Right. Four hundred dollars to Watson. A television camera catches Ferrucci's smiling face.

线索涵盖了从披头士到奥运会的各种话题。第一局比赛结束时,双方比分接近。詹宁斯落后两千美元,沃森和拉特则各输五千美元。

The clues range from the Beatles to the Olympics. At the end of the first game, the scores are close. Jennings is two thousand dollars behind, and Watson and Rutter are tied at five thousand dollars each.

在第二集中,沃森的开场表现不错,但他的一些回答却相当奇怪。以下是他给出的线索:

In the second episode, Watson starts off well, but some of his answers are decidedly strange. In response to the clue:

美国城市:其最大的机场以二战英雄的名字命名,其第二大机场以二战战役的名字命名。

US Cities: Its largest airport is named for a World War II hero, its second largest for a World War II battle.

沃森回答道:

Watson replies:

多伦多是什么?

What is Toronto?

正确答案是芝加哥:多伦多甚至不在美国。

The correct answer is Chicago: Toronto isn't even in the US.

尽管如此,沃森还是赢得了比赛。第二集结束后,最终得分为:沃森35,734美元,拉特10,400美元,詹宁斯仅得4,800美元。

Nevertheless, Watson wins the game. The final scores after the second episode are: Watson $35,734, Rutter $10,400, and Jennings a measly $4,800.

在第三集中,每个人都仍然有机会获胜。起初,詹宁斯和沃森势均力敌,遥遥领先于拉特。沃森猜对了一条线索,然后选择了“每日双倍”——玩家只需回答一个问题就能加倍赌注的机会。费鲁奇高兴地举起了拳头。詹宁斯明显崩溃了。他后来解释道:

In the third episode, everyone still has a chance to win. At first, Jennings and Watson are neck and neck, well ahead of Rutter. Watson gets a clue right and then chooses the Daily Double – a chance for a player to double their bet with a single question. Ferrucci raises a fist in delight. Jennings visibly collapses. He later explains:

那一刻我知道一切都结束了。

That's the moment I knew it was over.

最终总分:沃森获得77,147美元,詹宁斯获得24,000美元,拉特获得21,600美元。IBM Watson获胜。IBM将一等奖一百万美元捐赠给慈善机构。

The final total scores are: Watson $77,147, Jennings $24,000, and Rutter $21,600. IBM Watson wins. IBM donates the first prize of one million dollars to charity.

赛后,拉特表示:

After the match, Rutter is of the opinion:

我原本以为这种技术还需要几年的时间才能实现。

I would have thought such technology was still years away.

对话式人工智能似乎第一次触手可及。詹宁斯认为:

For the first time, it seemed that conversational artificial intelligence was within reach. Jennings opined:

我认为我们今天看到了一些重要的东西。

I think we saw something important today.

沃森是如何实现这个看似不可能的事情的?

How did Watson achieve the seemingly impossible?

当然,沃森的计算能力和超大内存在一定程度上促成了计算机的成功。

Certainly, Watson's computing power and excessive memory contributed in part to the computer's success.

沃森的硬件堪称顶尖。这台机器由 100 台 IBM Power 750 服务器组成,总内存达 15TB,拥有 2880 个处理器核心。在满负荷运转下,这台机器每秒可进行 80 万亿次计算。

Watson's hardware was state-of-the-art. The machine consisted of a network of 100 IBM Power 750 servers with a total memory of 15 terabytes and 2,880 processor cores. At full power, the machine could perform 80 trillion calculations per second.

沃森拥有海量数据可供使用。比赛规则要求,沃森在比赛期间必须断开网络连接。在开发过程中,沃森团队下载了上百万本书籍。各种重要文献都存储在它的内存中——教科书、百科全书、宗教文本、戏剧、小说以及电影剧本。

Watson had a vast trove of data at its disposal. The rules required that the machine be disconnected from the Internet during the competition. During development, the Watson team had downloaded a million books to Watson. All sorts of important documents were stored in its memory—textbooks, encyclopedias, religious texts, plays, novels, and movie scripts.

尽管如此,Watson 的真正成功在于其算法。

Despite all this, Watson's real success lay in its algorithms.

屈臣氏秘方

Watson's Secret Recipe

沃森的软件由数百种算法协同工作组成。首先,有一个解析器算法,它将线索分解成其语法组成部分。解析器确定线索中每个单词的词性。这是通过查找词典中的单词来完成的。

Watson's software consists of an amalgam of hundreds of algorithms working together. First, there is a parser algorithm, which breaks down the clue into its constituent grammatical components. The parser determines to which part of speech each word in the clue belongs. This is done by looking up the words in a dictionary.

给出线索:

Given the clue:

诗人与诗歌: 1907 年出版《 酸面包之歌》之前,他是育空地区的一名银行职员。

Poets & Poetry: He was a bank clerk in Yukon before he published Songs of a Sourdough in 1907.

沃森发现“他”是一个代词,“是”是一个动词,“银行职员”是一个复合名词。

Watson sees that 'he' is a pronoun, 'was' is a verb, and 'bank clerk' is a compound noun.

基于识别出的句子结构,解析器提取单词之间的联系。例如,Watson 发现“he”和“bank clerk”之间存在“was”的联系,“he”和 “Songs of a Sourdough”之间存在“publish”的联系。 此外,他还发现“he”和“Yukon”之间存在“in”的关系。

Based on the recognized sentence structure, the parser extracts the connections between words. For example, Watson finds a 'was' connection between 'he' and 'bank clerk' and a 'publish' connection between 'he' and 'Songs of a Sourdough'. He also notes an 'in' relationship between 'he' and 'Yukon'.

在找到词语之间的精确联系后,沃森会寻找隐含的联系。系统会将原始词汇与同义词词典进行核对。这能更深入地洞察线索的含义。例如,“出版”关系暗示着“作者”的联系。

After finding the precise connections between the words, Watson goes hunting for implicit connections. The original terms are checked against a synonym dictionary. This provides a deeper insight into the meaning of the clue. For example, the 'publish' relationship implies an 'author of' link.

随着线索的探索, 线索的要素逐渐清晰。 主要考虑三个要素:线索、答案类型问题类别。线索的目标是线索引导参与者去寻找的人、事件或事物。答案类型是线索的性质。问题类别是指线索所属的类别。可能的类别包括事实类、定义类、多项选择类、谜题类和缩写类。在本例中,线索是 “他” ——男性个体;答案类型是 “职员”“作家”(隐含);问题类别是“事实类”——一条简短的事实信息。

As the connections are explored, the elements of the clue are recognized. Three main elements are considered: the focus ofthe clue, the answer type , and the question class. The cue's target is the person, event, or thing that the clue is guiding the participants to. The answer type is the nature of the cue. The question class refers to the category that the clue belongs to. Possible categories are factual, definition, multiple choice, puzzle, and abbreviation. In the example, the cue is 'he' – a male individual; the answer type is 'clerk' and 'writer' (implied); and the question class is 'factual' – a short factual piece of information.

线索分析完成后,Watson 会在自己的数据库中搜索答案。Watson 会启动一系列搜索。这些搜索会针对其记忆库中的结构化非结构化数据进行。结构化数据是指存储在组织良好的表格中的信息。结构化数据非常适合进行事实调查。例如,Watson 可能会在一个包含著名歌曲名称和作者的表格中搜索 “Songs of a Sourdough”。鉴于这首诗的晦涩难懂,这种搜索很可能毫无结果。

Once the clue analysis is complete, Watson searches its own database for answers. Watson initiates a series of searches. These searches are performed on both the structured and unstructured data that Watson has in its memory banks. Structured data refers to information that is stored in well-organized tables. Structured data is ideal for fact-finding. For example, Watson might search for Songs of a Sourdough in a table that contains the titles and authors of well-known songs. Given the obscurity of the poem, this search is likely to be fruitless.

非结构化数据是指未经正式组织的信息。非结构化数据包括文本文档中的信息,例如报纸和书籍。它们蕴含着丰富的知识,但计算机难以解读。从非结构化数据中提取有用信息,是构建沃森系统的最大挑战之一。然而,最终,团队发现了一些出人意料的高效技巧。

Unstructured data is the term for information that is not formally organized. Unstructured data includes information in text documents, such as newspapers and books. There is a lot of knowledge in them, but it is difficult for a computer to interpret. Extracting useful information from unstructured data turned out to be one of the biggest challenges in building Watson. Eventually, however, the team discovered some surprisingly efficient tricks.

一种方法是查找包含线索中所有单词的百科全书条目。通常,条目的标题就是要查找的答案。例如,在英文维基百科中搜索 “bank clerk Yukon Songs of a Sourdough 1907”(银行职员育空酸面包之歌 1907) 会返回标题为“Robert W. Service”的页面。这就是正确答案。

One technique involved looking for an encyclopedia entry that contained all the words in the clue. Often the title of the entry is the answer sought. For example, searching the English Wikipedia for the words "bank clerk Yukon Songs of a Sourdough 1907" would return a page titled Robert W. Service. That is the correct answer.

另一种选择是搜索维基百科页面,其标题是线索的目标。然后,算法会在该页面的文本中搜索所需信息。例如,如果沃森收到“亚历山大·克瓦希涅夫斯基于1995年成为该国总统”的线索,它会在维基百科中搜索一篇名为“亚历山大·克瓦希涅夫斯基”的文章。然后,计算机会在这篇文章中搜索最常见的国家名称。

Another option is to search for a Wikipedia page whose title is the target of the clue. The algorithm then hunts for the desired information in the text of that page. For example, if Watson is given the clue "Aleksander Kwaśniewski became president of this country in 1995," it searches Wikipedia for an article titled Aleksander Kwaśniewski. The computer then searches that article for the most common country name.

沃森启动了一系列这样的搜索,希望其中有一个能够产生准确的结果。

Watson launches a battery of such searches in the hope that one of them will produce accurate results.

通过计算答案与线索要求的匹配程度,对得到的潜在答案进行评分。答案和线索的各个方面都会进行比较和评分。得分最高的答案将被选为最佳解决方案。分数将与一个固定阈值进行比较。如果分数超过该阈值,Watson 会将该答案转换为问题,并按下蜂鸣器按钮。当出现提示时,Watson 会向游戏主持人提出问题。

The resulting potential answers are scored by calculating how well the answers meet the requirements of the clue. Each aspect of the answers and the clue is compared and scored. The answer with the highest score is chosen as the best solution. The score is compared to a fixed threshold. If the score exceeds that threshold, Watson converts that answer into a question and presses the buzzer button. When prompted, Watson then poses the question to the game master.

Watson 根植于20 世纪七八十年代的专家系统和基于案例的推理技术。第一个流行的专家系统 MYCIN 由斯坦福大学的 Edward Feigenbaum 团队开发。它旨在帮助医生确定感染是细菌感染还是病毒感染。细菌感染可以用抗生素治疗,而病毒感染对抗生素没有反应。医生常常开出过量的抗生素,而他们错误地将抗生素推荐用于治疗病毒感染。MYCIN 通过询问一系列问题来评估患者的症状和诊断测试的结果,从而帮助医生开具处方。问题的顺序由 MYCIN 软件中内置的一组手动定义的规则决定。MYCIN 的最终诊断(细菌感染还是病毒感染)基于一组由医学专家创建的规则。

Watson has its roots in expert systems and case-based reasoning technology from the 1970s and 1980s. The first popular expert system, MYCIN, was developed by Edward Feigenbaum’s group at Stanford University. It was designed to help physicians determine whether an infection was bacterial or viral. Bacterial infections can be treated with antibiotics, while viral infections do not respond to such drugs. Physicians commonly overprescribe antibiotics, which they incorrectly recommend for viral infections. MYCIN helps the physician write a prescription by asking a series of questions that assess the patient’s symptoms and the results of diagnostic tests. The order of the questions is determined by a list of manually defined rules that are baked into the MYCIN software. MYCIN’s final diagnosis—bacterial or viral—is based on a set of rules created by medical experts.

基于案例的推理(CBR) 系统比专家系统能够实现更灵活的决策。由耶鲁大学的 Janet Kolodner 开发的 CYRUS 被广泛认为是第一个可运行的 CBR 系统。CYRUS 是一个基于自然语言的信息检索系统。该系统包含吉米·卡特政府时期国务卿赛勒斯·万斯和埃德蒙·马斯基的传记和日记。通过利用这些信息来源,CYRUS 可以与用户进行对话,回答有关这两个主题的问题。例如:

Case-Based Reasoning (CBR) systems allow for more flexible decision-making than expert systems. CYRUS, developed by Janet Kolodner at Yale University, is widely considered the first working CBR system. CYRUS is a natural language-based information retrieval system. The system contains the biographies and diaries of Cyrus Vance and Edmund Muskie, both Secretary of State under Jimmy Carter. By drawing on these sources of information, CYRUS engages the user in a conversation, answering questions about the two subjects. For example:

问:赛勒斯·万斯是谁?

Q: Who is Cyrus Vance?

答:外交部长

Answer: Minister of Foreign Affairs of

美国。

the United States.

问:他有孩子吗?

Q: Does he have children?

答:是的,五个。

Answer: Yes, five.

问:他现在在哪里?

Q: Where is he now?

答案: 在以色列。

Answer: In Israel.

CYRUS 通过将问题与文档中的段落进行匹配来创建可能的答案。所有匹配都会根据相似度进行评分。然后,得分最高的可能答案将以合适的措辞呈现给用户。

CYRUS creates possible answers by matching the question with passages in the documents. All matches are scored for similarity. The possible answer with the highest score is then appropriately worded and delivered to the user.

专家系统的主要缺点是每条规则和考量都必须手动编入系统。然而,基于案例的推理要求程序考虑到问题和源材料中所有可能的语言细微差别。由于自然语言的复杂性,将问题映射到有效答案极其困难。算法必须处理种类繁多、令人眼花缭乱的句子结构。双关语、笑话和双关语使问题更加复杂。输入文本和参考文献中提供的语言的每一个细微差别都会增加基于案例的推理算法的复杂性。

The main disadvantage of expert systems is that every rule and consideration must be manually programmed into the system. However, case-based reasoning requires that every possible linguistic nuance in the questions and source material be taken into account by the program. Because of the complexity of natural language, mapping a question to a valid answer is extremely difficult. Algorithms must deal with a bewildering variety of sentence structures. Puns, jokes, and double meanings compound the problem. Every nuance in the language provided in the input text and the reference documents adds complexity to a CBR algorithm.

沃森在《危险边缘》中的成功取决于它的线索。 《危险边缘》的问题类型很多,但数量有限。对于团队来说,编写能够处理最常见的《危险边缘》线索类型的算法是一项艰巨的任务。如果《危险边缘》的制作人 突然改变线索的格式,沃森就会很吃力。沃森的人类对手可能会轻松适应。沃森被编程来处理 《危险边缘》的线索,别无其他。尽管沃森看似天才,但它什么都不懂。它只是根据预定规则打乱单词顺序。然而,沃森掌握的规则和数据比之前的任何自然语言处理系统都要多。

Watson's success in playing Jeopardy! hinged on its clues. Jeopardy! uses a large but limited number of question types. It was a Herculean task for the team to write algorithms that could handle the most common types of Jeopardy! clue styles . If the producers of Jeopardy! had suddenly changed the format of the clues, Watson would have struggled. Watson's human opponents would likely have adapted with ease. Watson was programmed to handle Jeopardy! clues, nothing else. Despite its apparent genius, Watson doesn't understand anything. It simply shuffles the words according to predefined rules. However, Watson had more rules and data at its disposal than any natural language processing system before it.

但 IBM 打造 Watson 并不仅仅是为了玩 《危险边缘!》(Jeopardy !):

But IBM didn't build Watson just to play Jeopardy !:

沃森致力于探索对自然语言的深度分析和理解,利用技术来解决人们实际遇到的问题。

[Watson] is about exploring deep analysis and understanding of natural language. That's about taking technology and using it to solve problems that people actually have.

《危险边缘!》(Jeopardy!)挑战结束后 ,IBM 成立了一个业务部门,将开发 Watson 时开发的技术商业化。该业务部门目前专注于医疗保健应用,包括自动病情诊断。但事实证明,将 Watson 高度专业化的算法迁移到其他领域非常困难。就连 IBM 的高管也承认,进展速度低于预期。

After the Jeopardy! challenge was over, IBM created a business unit to commercialize the technologies developed while building Watson. That business unit is now focused on healthcare applications, including automated condition diagnosis. But switching over Watson’s highly specialized algorithms has proven difficult. Even IBM executives have admitted that progress has been slower than expected.

回想起来,参加《危险边缘挑战赛》的沃森版本堪称案例推理的巅峰。更强大的人工智能技术早已蓄势待发。沃森的出现,预示着即将到来的革命。一些小型人工神经网络增强了沃森的决策能力。这些网络预示着未来的发展。人工智能的“恐龙”——专家系统和案例推理——即将被海啸席卷而去。

In retrospect, the version of Watson that played on Jeopardy Challenge was the pinnacle of case-based reasoning. Far more powerful AI technologies were already waiting on the sidelines. A glimpse of the coming revolution was built into Watson. Here and there, a handful of small artificial neural networks amplified Watson’s decision-making ability. These networks were harbingers of things to come. The dinosaurs of AI—expert systems and CBR—were about to be swept away by a tsunami.

 

 

大脑处理感官信号并做出反应。

从出生起,孩子就开始学习识别一切事物,这种模式识别能力在二十世纪是一项重大的技术挑战。

The brain processes sensory signals and responds to them.

From birth, a child learns to recognize everything, a form of pattern recognition that was a major technological challenge in the twentieth century.

11

11

模仿大脑

Mimicking the brain

因此,记忆的机制与联想的机制相同,而我们所知的联想机制只不过是神经中枢的基本习惯规律。

The machinery of remembering is therefore the same as the machinery of associating, and the machinery of associating, as we know, is nothing other than the elementary law of habit in the nerve centres.

威廉·詹姆斯

William James

《心理学原理》( 1890年)

The Principles of Psychology, 1890

人类天生就拥有识别模式的能力。在短短几年的成长过程中,孩子们就能学会识别面孔、物体、声音、气味、纹理和口语。在二十世纪,研究人员试图设计出能够匹敌人类模式识别能力的算法,却惨遭失败。为什么计算机数学能力如此强,模式识别能力却如此糟糕?

Humans have an innate ability to recognize patterns. In just a few formative years, children learn to recognize faces, objects, voices, smells, textures, and the spoken word. During the twentieth century, researchers failed miserably in their attempts to design algorithms that could match human pattern recognition skills. Why were computers so good at math but so bad at pattern recognition?

为了更好地理解这一巨大的挑战,让我们想象一下开发一个可以识别照片中的猫的系统。

To better understand the enormous challenge, let's imagine developing a system that can recognize cats in photos.

第一步是将图像转换成计算机可以处理的一系列数字。数码相机的镜头将光线聚焦在一个电子传感器网格上。每个传感器将光线转换成0到1之间的数字。在黑白图像中, 0代表黑色,1代表白色,介于0和1之间的数字代表一种灰色。每个数字对应图像中的一个点,或者说像素图像元素) 。这一系列数字是图像的数字近似值。这仍然很简单。模式识别的挑战不在于创建数字图像,而在于编写一个能够理解所有这些数字的算法。

The first step is to convert an image into a series of numbers that a computer can process. The lens of a digital camera focuses light on a grid of electronic sensors. Each sensor converts the light into a number between 0 and 1. In a black-and-white image, 0 represents black, 1 represents white, and everything in between represents a shade of gray. Each number corresponds toa point, or pixel ( picture element) in the image. The series of numbers is a digital approximation of the image. That's still simple. The challenge in pattern recognition is not creating a digital image, but writing an algorithm that can make sense of all those numbers.

困难在于实际图像的多样性。首先,猫的品种繁多。猫可胖可瘦,可大可小,可毛茸茸可秃顶,可灰可棕,可白可黑,可有尾巴可无尾巴。其次,猫的姿势多种多样——它可以躺着、坐着、站着、走着或跳跃。它可以看着镜头,也可以看向左边、右边,或者背对着镜头。第三,照片的拍摄条件多种多样。白天或夜晚,使用闪光灯、近距离拍摄或使用长焦镜头。编写一个能够处理所有这些条件的算法极其困难。每一种可能性都需要一条新规则,该规则必须与所有先前的规则协同工作。很快,这些规则就会开始相互矛盾。最终,算法的开发陷入停滞。

The difficulty comes from the variety of actual images. First, there are many breeds of cats. The cat can be fat or thin, big or small, furry or bald, gray, brown, white or black, with or without a tail. Second, a cat can be in any of many poses – it can lie down, sit, stand, walk or jump. It can look at the camera, or to the left, or to the right, or away from the camera. Third, the photo can be taken under a wide range of conditions. In daylight or at night, with a flash, up close or with a telephoto lens. Writing an algorithm that can handle all these conditions is extremely difficult. Each possibility requires a new rule that must work together with all the previous rules. Soon the rules begin to contradict each other. Eventually, the development of the algorithm grinds to a halt.

脑细胞

Brain cells

到二十世纪初,神经科学已经对人类神经系统建立了基本的认识。西班牙神经科学家圣地亚哥·拉蒙·卡哈尔引领了这一领域的发展,并于1906年获得诺贝尔医学或生理学奖。

By the early twentieth century, neuroscience had established a basic understanding of the human nervous system. Spanish neuroscientist Santiago Ramón y Cajal had led the way, earning him the Nobel Prize in Medicine or Physiology in 1906.

人脑由大约 1000 亿个细胞组成,这些细胞被称为神经细胞或神经元。单个神经细胞由三个结构组成:中央体、一组称为树突的输入纤维 ,以及许多称为轴突的输出纤维。在显微镜下观察,纤细的树突和轴突从球状中央体延伸出来,并在延伸过程中分支出来。每个轴突(输出)通过它们之间的小空间(称为突触)连接到另一个神经细胞的树突(输入)。大脑中的神经细胞大量地相互连接。一个神经细胞可以连接到多达 1,500 个其他神经细胞。

The human brain is made up of about 100 billion cells, called nerve cells or neurons. A single nerve cell consists of three structures: a central body, a collection of input fibers called dendrites , and a number of output fibers called axons . Viewed under a microscope, thin, wispy dendrites and axons extend from the bulbous central body, branching out as they go. Each axon (output) is connected to a dendrite (input) of another nerve cell through a small space between them, called a synapse . Nerve cells in the brain are massively interconnected. A single nerve cell can be connected to as many as 1,500 other nerve cells.

大脑通过从一个神经细胞发送到另一个神经细胞的电化学信号来工作。当一个神经细胞放电时, 它会从中央神经元向其所有轴突发送信号。该信号沿着相连神经细胞的树突传递。该信号的作用是刺激 (激发)或抑制(抑制)接收信号的神经细胞。到达某些树突的信号会引起刺激,而到达其他树突的信号会引起抑制。如果一个细胞从一个或多个其他神经细胞接收到足够的刺激,它就会放电。单个神经细胞的放电可以引发一系列神经细胞的放电。相反,到达抑制性神经细胞输入的信号可以限制刺激的量,使神经细胞不太可能放电。刺激或抑制的程度受输入信号的频率和接收树突的灵敏度的影响。

The brain works by means of electrochemical signals that are sent from one nerve cell to another. When a nerve cell fires, it sends a signal from the central body to all of its axons. The signal is carried along the dendrites of connected nerve cells. That signal serves to either stimulate (excite) or inhibit (inhibit) the receiving nerve cells. Signals arriving at certain dendrites cause stimulation, while signals arriving at others cause inhibition. If a cell receives sufficient stimulation from one or more other nerve cells, it will fire. The firing of a single nerve cell can lead to a cascade of firing nerve cells. Conversely, signals arriving at inhibitory nerve cell inputs can limit the amount of stimulation, making the nerve cell less likely to fire. The level of stimulation or inhibition is affected by the frequency of the incoming signals and the sensitivity of the receiving dendrite.

沃尔特·皮茨。

Walter Pitts.

加拿大神经心理学家唐纳德·赫布发现,当一个神经细胞持续放电时,接收信号的树突会发生改变。它们对放电的神经细胞变得更加敏感。因此,接收信号的神经细胞更有可能通过放电做出反应。赫布的发现揭示了生物神经网络中的学习效应,即过去的经验决定了未来的功能。这一发现为神经元的功能之间建立了决定性的联系。单个神经细胞,以及更高层次的大脑的学习能力。

Canadian neuropsychologist Donald Hebb discovered that when a nerve cell fires continuously, a change occurs in the receiving dendrites. They become more sensitive to the firing nerve cell. As a result, a receiving nerve cell is more likely to respond by firing. Hebb's discovery revealed a learning effect in biological neural networks in which past experience determines future functioning. This finding provided a decisive link between the functioningof individual nerve cells and, at a higher level, the brain's ability to learn.

1943年,两位美国研究人员提出,可以用数学模型来模拟神经细胞的功能。这个提议既激进又引人入胜。

In 1943, two American researchers suggested that the functioning of nerve cells could be modeled using mathematics. The proposal was as radical as it was intriguing.

沃尔特·皮茨是个神童。他在底特律一个贫困的环境中长大。他通过公共图书馆的书籍自学数学、希腊语和拉丁语。一天,他在书架上浏览书籍时,偶然发现了 《数学原理》。这部著作虽然通俗易懂,但却提供了数学的逻辑基础。在阅读过程中,皮茨发现了书中的一些错误。他给作者之一伯特兰·罗素写了一封信,指出了这些错误。罗素兴奋地回信邀请皮茨去剑桥大学学习。不幸的是,皮茨未能接受。他当时十二岁。

Walter Pitts was a child prodigy. He grew up in a deprived environment in Detroit. He taught himself mathematics, Greek, and Latin from books in the public library. One day, while browsing through the shelves of books, he came across Principia Mathematica . Far from easy to read, this work provides the logical foundations of mathematics. While reading the book, Pitts discovered a number of inaccuracies. He wrote a letter to Bertrand Russell, one of the authors, pointing out the errors. Russell wrote back to Pitts, excited, inviting him to study at the University of Cambridge. Unfortunately, Pitts was unable to accept. He was twelve years old.

十五岁时,皮茨听说罗素将在芝加哥大学授课。皮茨离家出走,再也没有回来。他偷偷地听了罗素的讲座,后来在芝加哥大学找到了一份家政工作。无家可归的皮茨结识了一位年轻的医学院学生杰罗姆·莱特文,莱特文发现了皮茨身上的某种特殊之处,并把他介绍给了沃伦·麦卡洛克。

When he was fifteen, Pitts heard that Russell would be lecturing at the University of Chicago. Pitts ran away from home, never to return. He secretly gained access to Russell's lectures and subsequently secured a housekeeping job at the institute. Pitts, homeless, befriended a young medical student, Jerome Lettvin, who saw something special in Pitts and introduced him to Warren McCulloch.

麦卡洛克是伊利诺伊大学的教授,比皮茨大24岁。与皮茨的年轻截然不同,麦卡洛克在东海岸一个富裕而充满关爱的家庭长大。他先学习了心理学,之后获得了神经生理学学位。麦卡洛克和皮茨这对意想不到的搭档,就麦卡洛克的研究展开了深入的交流。当时,麦卡洛克正尝试用逻辑运算来描述神经细胞的运作方式。皮茨理解麦卡洛克的动力,并提出了一种替代的数学方法来解决这个问题。麦卡洛克既认识到皮茨的潜力,也认识到他的困境,于是邀请皮茨和莱特文与他和他的妻子一起生活。

McCulloch, a professor at the University of Illinois, was 24 years older than Pitts. In stark contrast to Pitts's youth, McCulloch had grown up in a well-to-do, caring family on the East Coast. He studied psychology before earning a degree in neurophysiology. The unlikely duo, McCulloch and Pitts, found themselves in an in-depth conversation about McCulloch's research. At the time, McCulloch was trying to represent the workings of nerve cells using logical operations. Pitts understood McCulloch's drive and proposed an alternative mathematical approach to the problem. McCulloch, recognizing both Pitts's potential and his predicament, invited both Pitts and Lettvin to live with him and his wife.

皮茨在新家安顿下来,经常和麦卡洛克一起工作到深夜。他们提出了一个想法:神经细胞的状态可以用数字来表示。他们进一步假设,相互连接的神经细胞的放电模式可以用方程式来模拟。他们建立了数学模型。他证明了神经元网络可以执行逻辑运算。他们甚至证明了此类网络可以执行图灵机的某些功能(参见第三章)。

Nestled in this new home, Pitts often worked late into the night with McCulloch. They developed the idea that the state of a nerve cell could be represented by numbers. They further postulated that the firing patterns of interconnected nerve cells could be simulated with equations. They developed mathematical modelswho showed that networks of neurons could perform logical operations. They even showed that such networks could perform some functions of the Turing machine (see Chapter 3 ).

在麦卡洛克的帮助下,皮茨虽然高中辍学,但还是考入了麻省理工学院。在皮茨的导师之一、数学教授诺伯特·维纳的带领下,他开始研究控制论,即自调节系统。这个领域涵盖了从生物学到家用电器等各种自调节系统。其中最著名的例子或许就是今天的恒温控制供暖系统。皮茨、维纳、麦卡洛克和莱特文组成了一个松散的团队,致力于推动该领域的发展。他们寻找志同道合的研究人员,例如约翰·冯·诺依曼。莱特文后来这样评价控制论专家:

With McCulloch's help, Pitts got a place at MIT, despite having dropped out of high school. Mathematics professor Norbert Wiener, one of his mentors at MIT, led Pitt to cybernetics , the study of self-regulating systems. This field includes all kinds of self-regulating systems, from biology to appliances. Perhaps the best-known examples are today's thermostatically controlled heating systems. Pitts, Wiener, McCulloch, and Lettvin formed a loosely knit group that sought to advance the field. They sought out like-minded researchers such as John von Neumann. Lettvin later said of the cyberneticists:

毫无疑问,皮茨是这个团体中的天才。

[Pitts] was without a doubt the genius in the group.

他对化学、物理以及所有你能想到的学科——历史、植物学等等——的掌握绝对无人能及。如果你问他任何问题,他都会给你一本教科书般的答案。对他来说,世界以一种错综复杂而美丽的方式紧密相连。

He was absolutely unparalleled in his mastery of chemistry, physics, everything you could talk about – history, botany and so on. If you asked him anything, you would get a whole textbook in response. For him, the world was tied together in a very intricate and beautiful way.

1952年,麦卡洛克受维纳邀请,在麻省理工学院领导一个神经科学项目。他抓住机会再次与皮茨合作,并立即搬到了波士顿。不幸的是,皮茨开始患上忧郁症,并染上了酒瘾。维纳突然断绝了与皮茨、麦卡洛克和莱特文的一切联系,且没有任何解释。皮茨陷入困境,最终陷入抑郁。1969年,他因酒精相关疾病去世,年仅46岁。几个月后,麦卡洛克因心脏病去世,享年70岁。他们的遗产是人工神经网络的数学基础。

In 1952, McCulloch was invited by Wiener to lead a neuroscience project at MIT. He seized the opportunity to work with Pitts again and immediately moved to Boston. Unfortunately, Pitts began to suffer from melancholic episodes coupled with an alcohol addiction. Wiener abruptly and without explanation broke off all contact with Pitts, McCulloch, and Lettvin. Pitts, floundering, fell into a depression. He died in 1969 at the age of only 46 from an alcohol-related illness. McCulloch died a few months later from a heart condition, aged 70. Their legacy was the mathematical foundation for artificial neural networks.

人工神经网络

Artificial neural networks

1954年,贝尔蒙特·法利和韦斯利·克拉克在麻省理工学院创建了世界上第一个人工神经网络(ANN 。两人在计算机程序中构建了一个简单的神经细胞放电模拟。他们用数字来表示神经细胞的状态,并追踪输入和输出的灵敏度。该网络被编程用于识别简单二进制数字(0和1的序列)的图像。虽然法利和克拉克是第一个,但真正推广ANN概念的是弗兰克·罗森布拉特。

The world's first artificial neural network (ANN ) was built in 1954 at MIT by Belmont Farley and Wesley Clark. The pair built a simple simulation of firing nerve cells into a computer program. They used numbers to represent the states of the nerve cells and to track the sensitivities of the inputs and outputs. The network was programmed to recognize images of simple binary numbers (sequences of zeros and ones). Although Farley and Clark were the first, it was Frank Rosenblatt who popularized the ANN concept.

1950 年,Mark I 感知器的发明者弗兰克·罗森布拉特 (Frank Rosenblatt)。

Frank Rosenblatt, inventor of the Mark I Perceptron, in 1950.

罗森布拉特出生于 1928 年,是纽约州新罗谢尔人。他就读于康奈尔大学,获得心理学博士学位,之后在该校心理学系任职。他最初在 IBM 计算机上模拟 ANN(1957 年)。后来,为了提高处理速度,他以电子设备的形式构建了一个 ANN,即 Mark I 感知器(1958 年)。罗森布拉特的感知器旨在识别图像中的简单形状。图像(只有 20 x 20 像素)从黑白相机输入到感知器。感知器模拟了一个小型神经细胞网络的行为。网络的输出由一系列神经细胞输出组成,每个输出对应于一个已识别的形状。具有最高值的输出表示在图像中看到了哪种形状。

Rosenblatt, born in 1928, was a native of New Rochelle, New York. He attended Cornell University, where he received his doctorate in psychology before taking a position in the university's psychology department. He began by simulating an ANN on an IBM computer (1957). Later, to increase processing speed, he built an ANN in the form of an electronic device, the Mark I Perceptron (1958). Rosenblatt's perceptron was designed to recognize simple shapes in images. The images (only 20 by 20 pixels) were fed to the perceptron from a black-and-white camera. The perceptron simulated the behavior of a small network of nerve cells. The output of the network consisted of a collection of nerve cell outputs, each corresponding to one of the recognized shapes. The output with the highest value indicated which shape had been seen in the image.

尽管感知器的功能非常有限,但罗森布拉特证明了自己是一位极具说服力的沟通者。在一次新闻发布会结束后,《纽约时报》写道:

Although the perceptron was very limited, Rosenblatt proved to be a persuasive communicator. After one of his press conferences, the New York Times wrote :

美国海军今天公布了一款电子计算机的雏形,预计它将能够行走、说话、观察、书写、复制,并能感知自身存在。未来,感知器有望能够识别人并读出他们的名字,还能立即将一种语言的语音翻译成另一种语言的语音和文字。

The Navy today unveiled the embryo of an electronic computer that it expects will be able to walk, talk, see, write, reproduce and be aware of its existence. Later perceptrons, it was predicted, will be able to recognize people and pronounce their names and instantly translate speech in one language into speech and writing in another.

人工神经元

ARTIFICIAL NEURON

罗森布拉特的预测与现实之间存在巨大差距。尽管如此,他的演示、文章和书籍对将ANN的概念传播到其他研究机构产生了巨大影响。

The gap between Rosenblatt's predictions and reality was enormous. Nevertheless, his demonstrations, articles and book had a great influence in spreading the concept of ANNs to other research institutes.

感知器是一个分类器——它确定给定输入属于哪个类别。在Rosenblatt的案例中,感知器的输入是一个形状的图像。感知器的目标是确定该形状是圆形、三角形还是正方形。这些形状就是被识别的类别。

A perceptron is a classifier it determines to which class, or category, a given input belongs. In Rosenblatt's case, the input to the perceptron was an image of a shape. The goal of the perceptron was to determine whether the shape was a circle, a triangle, or a square. Those shapes were the recognized classes.

感知器由一层或多层人工神经元组成。每个神经元都有多个输入和一个输出,就像神经细胞有树突和轴突一样。输入或输出的信号强度用一个数字表示。 神经元是根据输入计算得出的。每个输入乘以一个权重。加权输入与偏差值相加, 得到 神经元的激励。该激励应用于激活函数。在感知器中,激活函数是一个简单的阈值运算。如果激励大于阈值(一个固定的数值),则输出为 1。如果小于阈值,则输出为 0。阈值对于整个网络是固定的。激活函数产生的 0 或 1 就是神经元的最终输出。

A perceptron consists of one or more layers of artificial neurons. Each neuron has a number of inputs and a single output, just as a nerve cell has dendrites and an axon. The strength of the signal at an input or output is represented by a number. The output of a neuron is calculated from the inputs. Each input is multiplied by a weight . The weighted inputs are summed together with a bias value to give the excitation of a neuron. That activation is applied to an activation function . In a perceptron, the activation function is a simple threshold operation. If the excitation is greater than the threshold (a fixed numerical value), the output is 1. If it is less, the output is 0. The threshold is fixed for the entire network. The 0 or 1 that emerges from the activation function is the final output of the neuron.

神经元的权重和偏差统称为网络的参数 。它们的值决定了神经元在何种条件下触发(或输出“1”)。参数可以是正数或负数。将输入“1”施加于正权重会增加神经元的激励,使其更有可能触发。相反,将输入“1”乘以负权重会降低神经元的激励,使其不太可能触发。偏差决定了神经元跨越固定阈值并触发之前需要多少输入激励。在网络正常运行期间,参数是固定的。

The weights and biases of the neurons are collectively called the parameters of the network. Their values ​​determine the conditions under which the neurons fire, or output a 1. Parameters can be positive or negative numbers. An input of 1 applied to a positive weight increases the excitation of a neuron, making it more likely to fire. Conversely, multiplying an input of 1 by a negative weight decreases the excitation of a neuron, making it less likely to fire. The bias determines how much input excitation is required before the neuron crosses the fixed threshold and fires. During normal network operation, the parameters are fixed.

感知器有许多输入。例如,Rosenblatt 的 20 x 20 像素图像通过 400 个连接输入到感知器。每个连接的值为 0 或 1,具体取决于相应像素是黑色还是白色。输入连接最终到达网络的第一层,即输入层。第一层的神经元只有一个输入连接。然后,一层的输出被传递到第二层的输入。在全连接网络中,一层的所有输出都是下一层每个神经元的输入。输入层的输出连接到第一个隐藏 层。隐藏层不直接连接到网络的输入和输出。在简单网络中,只能有一个隐藏层。隐藏层之后是输出层。这些层中神经元的输出构成最终的网络输出。每个输出神经元对应一个类。理想情况下,只有属于已识别类别的神经元(即输出为 1 的神经元)才会激发。

Perceptrons have a number of inputs. For example, Rosenblatt's 20 by 20 pixel image is fed to the perceptron via 400 connections. Each connection has a value of 0 or 1, depending on whether the corresponding pixel is black or white. The input connections end up at the first layer in the network, the input layer. Neurons in the first layer have only a single input connection. Then, the outputs from one layer are passed to the inputs of the second layer. In a fully connected network, all the outputs from one layer are an input to every neuron in the next layer. The outputs of the input layers are connected to the first hidden layer. Hidden layers are not directly connected to the inputs and outputs of the network. In a simple network, there can only be a single hidden layer. After the hidden layers comes the output layer. The outputs of the neurons in those layers form the final network outputs. Each output neuron corresponds to a class. Ideally, only the neuron that belongs to the recognized class (i.e., the one that has an output of 1) fires.

综上所述,ANN 模拟过程如下:

In summary, an ANN simulation proceeds as follows:

感知器

PERCEPTRON

具有三个输入、两个完全连接层和两个输出类。

with three inputs, two fully connected layers and two output classes.

获取网络输入值。

Take the network input values.

对每一层重复以下操作:

Repeat for each layer:

对层中的每个神经元重复以下操作:

Repeat for each neuron in the layer:

将总激励设置为等于偏差。

Set the total excitation equal to the bias.

对每个神经元的输入重复此操作:

Repeat for each input to the neuron:

将输入值乘以输入权重。

Multiply the input value by the input weight.

增加总体激励。

Add to the total excitation.

一旦所有输入都已处理完毕,就停止迭代。

Stop iterating once all inputs have been processed.

如果激励大于阈值,

If the excitation is greater than the threshold,

然后将神经元输出设置为 1,

then set the neuron output equal to 1,

否则将神经元输出设置为 0。

otherwise set the neuron output equal to 0.

一旦图层处理完毕,就停止重复。

Stop repeating once the layer has been processed.

所有层都处理完毕后停止重复。

Stop repeating once all layers have been processed.

提供与最大网络输出相关的类的名称。

Provide the name of the class associated with the largest network output.

ANN 的整体运作可以通过想象神经元在放电时发光来直观地展现。输入是呈现给网络。这会在输入层产生 1 和 0。一些神经元触发并将 1 发送到隐藏层。这会刺激一些隐藏神经元,它们也会触发。这会刺激输出层中的一个神经元。该单个输出神经元会触发,指示在网络输入端观察到的模式。

The overall operation of an ANN can be visualized by imagining that the neurons light up as they fire. An input ispresented to the network. That produces 1s and 0s in the input layer. Some neurons fire and send 1s to the hidden layer. That stimulates some hidden neurons and those fire. That stimulates one of the neurons in the output layer. That single output neuron fires, indicating what pattern was observed at the network input.

每个神经元都会对输入做出微小的决策。大量相互连接的神经元协同工作,就能对输入的性质做出复杂的决策。识别复杂模式的能力源于所有这些微小决策的相互作用。

Each neuron makes a small decision about the input. Working together, a large number of interconnected neurons can make complex decisions about the nature of the input. The ability to recognize complex patterns comes from the interplay of all these small decisions.

ANN 设计面临两大挑战。首先是选择合适的拓扑结构。 这指的是网络中神经元的排列方式。拓扑结构决定了层数、每层神经元的数量以及神经元之间的互连性。拓扑结构会影响网络处理任务的复杂性。通常,执行更复杂的模式识别任务需要更多的神经元和层数。第二个挑战是确定网络中参数的值。参数控制着网络的行为。如果网络要正确地对输入进行分类,参数值必须恰到好处。

There are two challenges in ANN design. The first is choosing a suitable topology. This is the arrangement of neurons in the network. The topology determines the number of layers, the number of neurons in each layer, and their interconnectivity. The topology affects the complexity of the tasks that a network can handle. In general, more neurons and layers are needed to perform more complex pattern recognition tasks. The second challenge is determining the values ​​of the parameters in the network. The parameters control the behavior of the network. If the network is to classify the inputs correctly, the parameter values ​​must be just right.

罗森布拉特根据他的经验加上随机 试错选择了一种网络拓扑结构,这种方法至今仍被广泛使用。

Rosenblatt chose a network topology based on his experience coupled with random trial-and-error , a method that is still widely used today.

给定一个拓扑结构,Rosenblatt 使用一个训练程序来找到有效的参数值。然后,Rosenblatt 向网络输入一些样本输入,并检查输出是否正确。如果输出不正确,他会调整参数,直到感知器给出正确的响应。他用一组样本输入重复此过程。训练完成后,Rosenblatt 通过使用以前未见过的输入进行测试来评估感知器的准确性。Rosenblatt 将他的训练方法称为反向传播误差修正。你可以说他不断摆弄感知器上的旋钮,直到它起作用。这种方法虽然劳动密集,但在识别少量简单形状方面却取得了相当不错的效果。

Given a topology, Rosenblatt used a training procedure to find efficient parameter values. Rosenblatt then fed the network a few sample inputs and checked to see if the output was correct. If it was incorrect, he adjusted the parameters until the perceptron gave the correct response. He repeated this process with a set of sample inputs. Once the training was complete, Rosenblatt assessed the accuracy of his perceptron by testing it with previously unseen inputs. Rosenblatt referred to his training method as back-propagating error correction . You could say that he fiddled with the knobs on his perceptron until it worked. The method was labor-intensive but gave reasonably good results for recognizing a small number of simple shapes.

然而,感知器在 20 世纪 60 年代末也受到了批评,并引发了一场争论。马文·明斯基和西摩·帕普特出版了一本名为《感知器》的书,彻底颠覆了这一理念。他们的书在研究界产生了巨大影响。两位作者他是麻省理工学院备受推崇的教授,也是该校人工智能实验室的负责人。佩普特是南非人,曾接受过数学教育。在加入麻省理工学院之前,他积累了令人印象深刻的履历,曾在剑桥大学、巴黎大学、日内瓦大学以及伦敦国家物理实验室工作过。明斯基出生于纽约市,最初相信神经网络。他在普林斯顿大学的博士论文就是关于神经网络的。他甚至设计了一种受神经突触启发、具有学习能力的电子设备:SNARC(1952 年)。随后,明斯基转而投身符号逻辑领域(参见 第五章)。对他来说,神经网络已经过时,逻辑推理才风靡一时。

However, perceptrons also came under criticism in the late 1960s and a polemic arose. Marvin Minsky and Seymour Papert published a book entitled Perceptrons that torpedoed the whole idea. Their book had a great influence within the research community. The two authors werehighly regarded professors at MIT and head of its artificial intelligence lab. Papert, a South African, was trained as a mathematician. Before coming to MIT, he had built up an impressive resume, having spent time at the universities of Cambridge, Paris, and Geneva, and at the National Physical Laboratory in London. Minsky, a native of New York City, initially believed in neural networks. His doctoral dissertation at Princeton was on just that. He even designed an electronic device with learning capabilities inspired by neural synapses: the SNARC (1952). Minsky then became a convert to the field of symbolic logic (see Chapter 5 ). For him, neural networks were passé, and logical reasoning was all the rage.

他们的书对感知器的特性进行了数学分析。书中描述了感知器的能力,但也强调了它的两个主要局限性。首先,他们指出单层感知器无法执行某些逻辑运算。其次,他们声称罗森布拉特的训练方法不适用于多层感知器。这本书的结论相当糟糕:

Their book provided a mathematical analysis of the properties of perceptrons. It described the power of perceptrons but highlighted two major limitations. First, they pointed out that single-layer perceptrons cannot perform certain logical operations. Second, they claimed that Rosenblatt's training method would not work for multi-layer perceptrons. The book was damning:

感知器在出版物中被广泛描述为用于模式识别或学习的机器,并在大量书籍、期刊文章和长篇“报告”中被如此讨论。最重要的是,这些文章[…]缺乏科学价值。许多命题表明感知器无法识别某些类型的模式。

Perceptrons have been widely described in publications as machines for pattern recognition or for learning, and have been discussed as such in a large number of books, journal articles, and voluminous 'reports'. Most of all this writing […] is without scientific value. Many of the propositions show that perceptrons cannot recognize certain types of patterns.

感知器拥护者们怒不可遏。他们认为,明斯基和帕普特的两点核心批评虽然有理有据,但却具有误导性。单级感知器确实无法学习某些原始逻辑函数,但多级感知器却可以 罗森布拉特的训练方法确实不适用于多级感知器,但这并不意味着找不到合适的训练程序。在一篇书评中,HD Block 反驳道:

Perceptron advocates were brimming with rage. Minsky and Papert’s two central criticisms were valid but misleading, they argued. It is true that single-level perceptrons cannot learn certain primitive logic functions, but multilevel perceptrons can . It is true that Rosenblatt’s training method does not work for multilevel perceptrons, but that does not mean that a suitable training procedure cannot be found. In a review of the book, HD Block shot back:

明斯基和帕普特定义的感知器比罗森布拉特所说的简单感知器更为通用。另一方面,简单感知器[…] 根本不是感知器爱好者所说的典型感知器。会这么称呼它。他可能对多层、反馈和交叉耦合感知器更感兴趣。简而言之,明斯基和帕普特使用“感知器”一词来表示一般感知器类别的一个受限子集。

A perceptron as defined by Minsky and Papert is somewhat more general than what Rosenblatt called a simple perceptron. On the other hand, the simple perceptron […] is not at all what a perceptron enthusiast calls a typical perceptronwould call it. He would be more interested in multilayer, feedback, and cross-coupling perceptrons. In short, Minsky and Papert use the word perceptron to denote a restricted subset of the general class of perceptrons.

一些目击者断定,明斯基和帕普特是故意想要扼杀感知器。无论他们的动机如何,这本书都导致了感知器研究的消亡。随着人们对人工智能的失望情绪日益加深,该领域的资金枯竭,人工智能的第一个寒冬随之而来。

Some witnesses concluded that Minsky and Papert were deliberately trying to kill the perceptron. Whatever their motive, the book contributed to the demise of perceptron research. Amid growing disillusionment with artificial intelligence, funding for the field dried up, and the first AI winter set in.

令人难过的是,罗森布拉特于1971年在他43岁生日那天,在切萨皮克湾的一次航海事故中不幸去世。明斯基和帕普特将《感知器》第二版献给了他, 以纪念他。

Sadly, Rosenblatt died in 1971 on his 43rd birthday in a sailing accident in Chesapeake Bay. Minsky and Papert dedicated the second edition of Perceptrons to his memory.

在随后的几年里,明斯基一直是一位多产且备受赞誉的人工智能研究员和作家。1969年,他因其在该领域的贡献而荣获ACM图灵奖。明斯基和帕普特于2016年去世,享年88岁。

In the years that followed, Minsky remained a prolific and celebrated AI researcher and author. He won the ACM Turing Award in 1969 for his contributions to advancing the field. Minsky and Papert died in 2016, both aged 88.

如何训练大脑

How to train a brain

1970年后,只有少数计算机科学家继续研究ANN。主要问题是找到一种训练多层网络的方法。最终,四个独立的研究小组分别解决了这个问题。然而,由于沟通不畅,没有人知道其他人在做什么。直到1985年,人们才知道多层ANN可以通过算法进行训练。

After 1970, only a handful of computer scientists continued to work on ANNs. The major problem was to find a way to train multilayer networks. Eventually, the problem was solved four times by four independent research groups. However, communication was so poor that no one knew what the others were doing. It would take until 1985 before it was known that multilayer ANNs could be trained by means of an algorithm.

在哈佛大学,保罗·沃博斯(Paul Werbos)在博士研究中解决了这个问题。他的算法—— 反向传播backprop)——已经存在一段时间了,但之前从未应用于ANN训练。沃博斯向如今已是人工智能泰斗的明斯基讲述了他的解决方案:

At Harvard, Paul Werbos solved the problem as part of his PhD research. His algorithm – back-propagation or backprop – had been around for a while but had not been applied to ANN training before. Werbos told Minsky – now the doyen of AI – about his solution:

20 世纪 70 年代初,我去麻省理工学院拜访了明斯基。

In the early 1970s I visited Minsky at MIT.

我建议我们一起写一篇论文,证明多层感知器确实可以克服之前的问题。但明斯基不感兴趣。

I suggested that we write a paper together showing that [multilayer perceptrons] could in fact overcome the previous problems. But Minsky wasn't interested.

十多年后(1985 年),David Parker 在麻省理工学院的一篇技术论文中描述了反向传播。同年,法国学生 Yann LeCun 在巴黎的一次会议上展示了类似的方法。一年后,著名期刊《 自然》上发表了一封描述反向传播的信。作者是 David Rumelhart 和 Ronald Williams(加州大学圣地亚哥分校)以及 Geoffrey Hinton(卡内基梅隆大学)。该团队并不知道之前的出版物,他们已经研究这个想法几年了。这封信清楚地描述了反向传播算法及其在 ANN 中的应用。在 《自然》杂志的大力支持下,反向传播最终被确立为训练 ANN 的算法。

More than a decade later (1985), David Parker described backprop in a technical paper at MIT. That same year, French student Yann LeCun presented a similar method at a conference in Paris. A year later, a letter describing backprop appeared in the prestigious journal Nature . The authors were David Rumelhart and Ronald Williams (University of California at San Diego), and Geoffrey Hinton (Carnegie Mellon University). Unaware of the earlier publications, the group had been working on the idea for a few years. The letter clearly described the backprop algorithm and its application to ANNs. With the underlying endorsement from Nature , backprop was finally established as the algorithm for training ANNs.

反向传播需要对人工神经元的激活函数进行细微的修改。阈值函数必须被平滑函数取代。这个新函数确保神经元输出随着激励的增加而逐渐从 0 变为 1。感知器中常见的从 0 到 1 的突然过渡因此消失。从 0 到 1 的平滑过渡确保了网络参数在反向传播过程中得到持续调整。

Backprop requires a small change to the activation function of artificial neurons. The threshold function must be replaced by a smoothing function. This new function ensures that the neuron output gradually changes from 0 to 1 as the excitation increases. The sudden transition from 0 to 1 used in the perceptron is thus gone. The smooth, smooth transition from 0 to 1 ensures that the network parameters are continuously adjusted during backprop.

平滑的激活函数还意味着网络输出可以取 0 到 1 之间的一系列可能值。因此,最终的决策不再是值为 1 的输出连接,而是值最高的输出连接。这种改变的副作用是,当输入位于两个类的边界时,可以提高鲁棒性。

The smoothed activation function also means that the network outputs can take on a range of possible values ​​between 0 and 1. And so the final decision is no longer the output connection with a value of 1. Instead, it is the output connection with the highest value. This change has the side effect of improving robustness when the inputs are on the boundary of two classes.

ANN 的正常运行称为前向传播(或推理)。ANN 接收输入,逐个神经元、逐层处理输入值,然后产生输出。推理过程中,参数是固定的。

The normal operation of an ANN is called forward propagation (or inference). The ANN receives an input, processes the values ​​neuron by neuron and layer by layer, and then produces an output. During inference, the parameters are fixed.

反向传播仅在训练期间使用,并在机器学习框架内运行(参见第 9 章)。首先,创建一个包含大量样本输入和相应输出的数据集。该数据集被拆分成三部分。一个较大的训练数据集用于确定最佳参数值。一个较小的验证数据集用于评估性能并指导训练。最后,一个测试数据集用于在训练完成后测量网络的精度。

Backprop is only used during training, and operates within a machine learning framework (see Chapter 9 ). To begin, a dataset is created with a large number of sample inputs and corresponding outputs. That dataset is split into three. A large training dataset is used to determine the best parameter values. A smaller validation dataset is set aside to evaluate performance and guide training. Finally, a test dataset is reserved for measuring the precision of the network after training is complete.

训练从随机网络参数开始。首先,为网络提供来自训练集的输入。网络利用当前参数值处理该输入(推理)并产生输出。然后,将网络输出与该特定输入的期望输出进行比较。实际输出与期望输出之间的误差,以实际输出与期望输出之间平均差值的平方来衡量。

Training begins with random network parameters. It proceeds by providing the network with an input from the training set. The network processes that input (inference) with the current parameter values ​​to produce an output. The network output is compared to the desired output for that specific input. The error between the actual and the intended output is measured as the square of the average difference between the actual and desired outputs.

假设网络有两个类输出:圆形和三角形。如果输入图像包含圆形,则圆形输出应为 1,三角形输出应为 0。在训练过程的早期,由于参数是随机的,网络的性能可能根本不会很好。圆形输出的值可能是 2/3,三角形输出的值可能是 1/3。误差等于 (1 - 2/3) 平方和 (0 - 1/3) 平方的平均值,即 2/9。

Imagine that the network has two class outputs: circle and triangle. If the input image contains a circle, the circle output should be 1 and the triangle output should be 0. Early in the training process, the network will probably not perform very well at all since the parameters are random. The circle output might have a value of 2/3 and the triangle output 1/3. The error is equal to the average of (1 – 2/3) squared and (0 – 1/3) squared, or 2/9.

然后根据误差调整网络中的参数。该过程从输出层第一个神经元的第一个权重开始。确定该特定权重与误差之间的数学关系,并利用该关系计算权重必须改变多少才能将误差变为零。将该结果减去一个常数值(即 学习率),然后从当前权重中减去。权重调整的作用是当网络再次接收到相同的输入时减少误差。乘以学习率可确保调整是渐进的,并在大量示例中取平均值。这些步骤对网络中的所有参数重复进行,从输出到输入,再到所有层。

The parameters in the network are then adjusted based on the error. The procedure starts with the first weight in the first neuron of the output layer. The mathematical relationship between this specific weight and the error is determined and the relationship is used to calculate how much the weight must change to change the error to zero. That result is reduced by a constant value, the learning rate, and subtracted from the current weight. The weight adjustment has the effect of reducing the error when the network receives the same input again. Multiplying by the learning rate ensures that the adjustment is gradual and is averaged over a large number of examples. These steps are repeated for all parameters in the network, from output to input back through all layers.

对训练数据集中的每个输入-输出对进行误差计算、反向传播和参数调整。经过多次迭代,误差逐渐减小。实际上,网络学习了输入样本与期望输出类别之间的关系。当误差不再减少时,训练结束(算法摘要见附录)。

Error computation, backprop, and parameter adjustment are performed for each input-output pair in the training data set. Over many iterations, the error is gradually reduced. In effect, the network learns the relationship between the input samples and the desired output classes. Training ends when no further error reduction is observed (a summary of the algorithm is included in the Appendix).

ANN 的强大之处在于其学习和泛化能力。泛化意味着网络能够识别出从未见过但与其训练输入相似的输入的正确类别。换句话说,一个用大量圆形图画训练过的网络,能够正确地对一幅从未见过的圆形草图进行分类。神经网络不需要记住训练数据——它学习输入和输出类别之间的一般关系。

The great strength of an ANN lies in its ability to learn and generalize. The latter means that the network determines the correct class for inputs that it has never seen before, but that are similar to the inputs it was trained on. In other words, a network that has been trained on many drawings of circles will correctly classify a sketch of a circle that it has not seen before. Theneural network does not need to remember the training data – it learns the general relationship between the inputs and the output classes.

反向传播首次使研究人员能够高效地训练多层网络。结果,网络变得更加精确,能够执行更复杂的分类任务。到本世纪末,至少在理论上,一个足够大的多层网络已经得到证明,可以学习从输入到输出的任何映射。明斯基和帕普特的反对意见被驳回。

Backprop allowed researchers to train multilayer networks efficiently for the first time. As a result, networks became more precise and could perform more complex classification tasks. By the end of the decade, it had been proven, at least in theory, that a sufficiently large multilayer network could learn any mapping from input to output. The objections of Minsky and Papert had been dismissed.

然而,ANN 的优势并非所有人都看得出来。即使采用了反向传播,网络规模仍然很小。当时的计算机能力有限,无法完成训练大型网络所需的大量计算。在接下来的二十年(1986-2006),ANN 基本上只是个配角。当然,对于试图理解大脑运作方式的认知科学家来说,它们可能是一个有用的工具,但对于严肃的计算机科学家和电气工程师来说,它们并非如此。正确的分类算法依赖于严谨的数学和统计学,而不是花招。

Nevertheless, the advantages of ANNs were not obvious to all observers. Even with backprop, the networks were still small. Computers of the time were too limited to perform the large number of calculations required to train a large network. ANNs were largely a sideshow for the next two decades (1986-2006). Sure, they could be a useful tool for cognitive scientists trying to understand how the brain works, but they were not for serious computer scientists and electrical engineers. The right classification algorithms depended on rigorous mathematics and statistics, not hocus pocus.

在普遍的质疑声中,一些成功案例让我们得以一窥ANN的潜力。这一时期的亮点之一便是Yann LeCun的研究成果。1985年,Yann LeCun还是一名博士生时,就在巴黎一个鲜为人知的会议上发表了关于反向传播的演讲。

Amid all this widespread skepticism, a few success stories provided a glimpse of what ANNs had to offer. One of the highlights of the period was work involving Yann LeCun, the same Yann LeCun who, as a PhD student in 1985, had presented on backprop at an obscure conference in Paris.

识别数字

Recognize numbers

LeCun 于 1960 年出生于巴黎。1983 年,他以电气工程师的身份从法国高等电工电子工程师学院 (ESIEE) 毕业。大二时,他偶然读到一本哲学书,书中讨论了先天 (nature) 和环境对儿童语言发展的影响的争论,或者说先天与后天之争。Seymour Papert 对此做出了贡献。在书中,LeCun 发现了感知器的概念。他开始阅读所有能找到的关于这个主题的资料。LeCun 很快就被这个主题迷住了。1987 年,他在皮埃尔和玛丽居里大学获得博士学位,专攻神经网络。获得博士学位后,他在加拿大多伦多大学 Geoffrey Hinton 的实验室做了一年的博士后。Hinton 当时已经是神经网络社区的大人物,他曾与他人共同撰写了发表在《自然》杂志上的反向传播信函。一年后,LeCun 转到新泽西州的 AT&T 贝尔实验室,在那里他从事图像处理的神经网络研究。

LeCun was born in Paris in 1960. He graduated in 1983 as an electrical engineer from the École Supérieure d'Ingénieurs en Electrotechnique et Electronique (ESIEE). In his second year, he came across a philosophy book that dealt with the debate about the influence of nature (nature) and environment on the development of speech in children, or the nature-nurture debate. Seymour Papert had made one of the contributions. In it, LeCun discovered the concept of perceptrons. He started reading everything he could find on the subject. LeCun was soon fascinated. For his PhD, from the Université Pierre et Marie Curie in 1987, he specialized in neural networks. After his PhD, he worked for a year as a postdoc in the laboratory of Geoffrey Hinton at the University of Toronto in Canada. Hinton was already a big name in the neural network community, having co-authored the backprop letter published in Nature . A year later, LeCun moved to AT&T Bell Laboratories in New Jersey, where he did research on neural networks for image processing.

2016 年,人工神经网络创新者 Yann LeCun。

Yann LeCun, innovator of the artificial neural network, in 2016.

LeCun加入了一个致力于构建能够识别手写数字的神经网络的团队。传统算法在这方面表现不佳——书写风格差异太大。流畅书写的“7”很容易被误认为“1”,反之亦然。未完成的“0”可能被读成“6”,而带有长尾的“2”经常被误认为是缩短的“3”。基于规则的算法无法应对这种情况。

LeCun joined a group that was working on building a neural network that could recognize handwritten digits. Conventional algorithms were not very good at this – there was too much variation in writing styles. Smoothly written sevens were easily mistaken for ones, and vice versa. Unfinished zeros could be read as sixes, and twos with long tails were often mistaken for shortened threes. Rule-based algorithms could not cope with it.

该团队获得了一个大型数据库,其中包含纽约州布法罗邮局处理过的信封上地址邮政编码的扫描数字图像。每封信包含五位数字。最终,数据库包含 9,928 幅图像。这些样本被手动分类为十个类别,分别对应十位十进制数字(0 到 9)。

The group obtained a large database consisting of digital images of scanned zip codes from addresses written on envelopes processed at the Buffalo, New York post office. Each letter provided five digits. Ultimately, the database contained 9,928 images. These samples were manually sorted into ten classes corresponding to the ten decimal digits (0 through 9).

该团队开发了一个人工神经网络 (ANN) 来执行识别任务,但收效甚微。复杂的映射需要庞大的网络。即使使用反向传播,训练网络也证明很难。为了解决这个问题,LeCun 提出了一个他在 Hinton 实验室里一直在研究的想法。

The group developed an ANN to perform the recognition task, but it had little success. The complex mapping required a large network. Even with backprop, training the network proved to bedifficult. To solve the problem, LeCun proposed an idea he had been tinkering with in Hinton's lab.

ANN 的输入是一张 16 x 16 像素的单个数字灰度图像。网络输出由十个连接组成,每个连接对应 0 到 9 之间的每类数字。信号最强的输出表示识别出的数字。

The ANN took as input a 16 by 16 pixel grayscale image of a single digit. The network output consisted of ten connections – one for each class of digits between 0 and 9. The output with the strongest signal indicated the recognized digit.

LeCun 的想法是将网络分解成许多共享参数的小型网络,从而简化网络。他的方法是构建一个仅包含 25 个神经元和少量层级的单元。该单元的输入是图像的一小部分——一个 5×5 像素的正方形。该单元被复制 64 次,形成一个。组中的单元平铺在图像上,使其完全被单元覆盖。每个单元的输入与相邻单元重叠三个像素。

LeCun's idea was to simplify the network by breaking it up into many small networks with shared parameters. His approach was to form a unit containing only 25 neurons and a small number of layers. The input to the unit was a small portion of the image—a five-by-five pixel square. The unit was copied 64 times to form a group . The units in the group were tiled across the image so that it was completely covered by units. The input to each unit overlapped by three pixels with a neighboring unit.

数字 7 的灰度图像(16 x 16 像素)。

左上角单元的像素输入以正方形表示。该单元的 64 个副本分布在图像上。

Grayscale image of the number 7 (16 by 16 pixels).

The pixel inputs to the unit at the upper left are indicated by a square. 64 copies of that unit are spread across the image.

整个网络包含十二个组。由于组中的单元共享相同的参数,它们执行相同的功能,但应用于图像的不同部分。每个组都经过训练以检测不同的特征。一个组可以检测图像中的水平线,另一个组可以检测垂直线,还有一个组可以检测对角线。所有组的输出都被输入到一个完全连接的三层网络中。最后几层将来自各个组的信息整合起来,从而实现对数字的整体识别。

The overall network contains twelve groups. Since the units in a group share the same parameters, they all perform the same function but are applied to a different part of the image. Each group is trained to detect a different feature. One group can detect horizontal lines in the image, another vertical lines, and yet another diagonal lines. The outputs of all the groups are fed into a fully connected three-layer network. These last layers unite the information from the groups and enable recognition of the number as a whole.

该网络具有层级结构。单个单元识别图像中一个五乘五的图案。一个组识别图像中的单个图案。十二个组识别图像中十二个不同的图案。最后的全连接层识别十二个图案之间的二维关系。这种层级结构的灵感来自人类视觉皮层,在视觉皮层中,单元被复制,连续的层处理图像的较大部分。

The network has a hierarchical structure. A single unit recognizes a five-by-five motif in the image. A group recognizes a single motif in the image. The twelve groups recognize twelve different motifs within the image. The final, fully connected layers recognize the two-dimensional relationships between the twelve motifs. This hierarchical organization is inspired by the human visual cortex, in which units are copied and successive layers process larger parts of the image.

LeCun 方案的妙处在于,同一组中的所有单元都具有相同的权重。因此,训练过程要简单得多。训练网络的第一层只需修改 12 个单元,每个单元仅包含 25 个神经元。

The beauty of LeCun's scheme is that all units in a single group have the same weights. As a result, training is much simpler. Training the first layers of the network consists of modifying only twelve units, each containing only 25 neurons.

在图像上复制和移动单个计算单元的数学过程称为卷积。因此,这种类型的网络被称为 卷积神经网络

The mathematical process of copying and shifting a single computational unit across an image is called a convolution. Therefore, this type of network is called a convolutional neural network .

贝尔实验室的卷积神经网络被证明极其高效,其准确率高达惊人的95%,接近人类的识别精度。该团队的研究成果于1989年发表,并由AT&T贝尔实验室进行了商业化应用。据估计,到20世纪90年代末,也就是十年后,美国10%到20%的银行支票将由卷积神经网络自动读取。

The Bell Labs convolutional neural network proved to be extremely efficient. It achieved a breathtaking accuracy of 95 percent. The network approached human precision. The group's discoveries were published in 1989 and the system was commercially exploited by AT&T Bell Labs. It was estimated that by the late 1990s, ten years later, 10 to 20 percent of bank checks in the United States would be automatically read by a convolutional neural network.

2003年,Yann LeCun离开贝尔实验室,被任命为纽约大学计算机科学教授。与此同时,他在多伦多大学的导师Geoffrey Hinton正在组建一个网络团队。

In 2003, Yann LeCun left Bell Labs and was appointed professor of computer science at New York University. Meanwhile, Geoffrey Hinton, his old mentor at the University of Toronto, was putting together a networking gang.

深度学习

Deep learning

辛顿于1947年二战后出生于英国温布尔登。他记得自己在学校时数学并不特别好。尽管如此,他还是被剑桥大学录取,在那里学习了物理和生理学。他不喜欢这门学科,所以他转而学习哲学。最终,他选择了心理学。回想起来,辛顿说他想了解人类思维是如何运作的。他得出结论,哲学家和心理学家并没有答案。他最终选择了计算机科学。

Hinton was born in Wimbledon, England, in 1947 after World War II. He remembers not being particularly good at math at school. Nevertheless, he was admitted to Cambridge University, where he studied physics and physiology. He didn't like it, so he switched to philosophy. Eventually, he chose psychology. Looking back, Hinton says he wanted to understand how the human mind works. He concluded that philosophers and psychologists didn't have the answers. He eventually chose computer science.

毕业后,这位年轻人做了一年木匠,之后前往爱丁堡大学攻读博士学位。在导师勉强同意的情况下,辛顿继续进行人工神经网络的研究。博士学位完成后,辛顿走上了四处奔波、不断发展的学术之路。他曾在萨塞克斯大学、加州大学圣地亚哥分校、卡内基梅隆大学和伦敦大学学院(UCL)工作,最终在多伦多大学获得教授职位。

After graduating, the young man worked as a carpenter for a year before beginning his PhD at the University of Edinburgh. With the reluctant acquiescence of his supervisor, Hinton continued his research on ANNs. After completing his PhD, Hinton followed the path of the itinerant, developing academic. He worked at the universities of Sussex, California (San Diego), Carnegie Mellon University, and University College London (UCL) before landing a professorship at the University of Toronto.

2004年,Hinton向加拿大高等研究院(CIFAR)提交了一份提案,申请资助一个专注于神经计算的研究项目。CIFAR以资助基础研究而闻名,但这仍然是一场豪赌。蒙特利尔大学教授Yoshua Bengio后来回忆道:

In 2004, Hinton submitted a proposal to CIFAR, the Canadian Institute For Advanced Research, asking for funding for a research project focused on neural computation. CIFAR was known for funding basic research, but it was still a big gamble. Yoshua Bengio, a professor at the University of Montreal, later recalled:

深度神经网络先驱 Geoffrey Hinton,2011 年。

Deep neural network pioneer Geoffrey Hinton, 2011.

这是最糟糕的时刻。其他人都在做别的事。杰夫不知怎么地说服了他们。

It was the worst possible moment. Everyone else was doing something else. Somehow Geoff convinced them.

利用这笔不多的资助,Hinton 组织了一系列仅限受邀者参加的会议,汇集了一些世界顶尖的 ANN 研究人员。Bengio 再次表示:

With the modest grant, Hinton organized a series of invitation-only meetings that brought together some of the world's top ANN researchers. Bengio again:

在更广泛的机器学习社区中,我们算是被排斥的人,我们的论文无法发表。

We were kind of outcasts in the broader machine learning community, we couldn't get our papers published.

这为我们提供了一个交流想法的场所。

This gave us a place where we could exchange ideas.

这项补贴最终成为一场巨大胜利的开始。

The subsidy turned out to be the start of a landslide.

2006年,Hinton、Simon Osindero 和 Yee-Whye Teh(多伦多大学和新加坡国立大学)发表了一篇开创性的论文。这篇论文标志着如今所谓的 深度学习的开端。论文描述了一个由三个完全连接的隐藏层组成的网络。该网络的参数非常多,以至于通过反向传播进行训练的速度极其缓慢。为了解决这个问题,Hinton 和他的团队设计了一种新的方法来加速训练。

In 2006, Hinton, Simon Osindero, and Yee-Whye Teh (University of Toronto and National University of Singapore) published a seminal paper. The paper marked the beginning of what is now known as deep learning. The paper described a network consisting of three fully connected hidden layers. The network had so many parameters that training it via backprop was impossibly slow. To solve this problem, Hinton and his group devised a new procedure that accelerated training.

通常,反向传播从任意参数值开始。然而,该团队增加了一个反向传播前的训练阶段。这个新阶段的目标是快速找到一组合适的参数来启动反向传播。

Typically, backprop starts with arbitrary parameter values. Instead, the group added a pre-backprop training phase. The goal of that new phase was to quickly find a suitable set of parameters with which to start backprop.

反向传播是监督训练的一个例子。它涉及向网络提供匹配输入和输出的示例。在这个新的初步阶段,Hinton 和他的合著者提出了使用无监督训练无监督训练仅使用输入示例。

Backprop is an example of supervised training. This involves providing a network with examples of matching inputs and outputs. In this new preliminary stage, Hinton and his co-authors proposed the use of unsupervised training . Unsupervised training uses only input examples.

在无监督预训练过程中,样本输入被输入到网络。网络参数由算法调整,以便ANN学习识别输入中有意义的模式。网络并不知道这些模式与哪些类别相关——它只是学习识别模式。在手写识别中,这些模式可能是线条的长度或方向,或者曲线的位置和长度。为了实现这一点,训练算法从输入层开始,逐层调整参数。换句话说,该算法让网络参数从输入中增长。这种方法所需的计算能力比反向传播要少得多。

During unsupervised pretraining, sample inputs are fed to the network. The network parameters are adjusted by an algorithm so that the ANN learns to recognize meaningful patterns in the input. The network is not told which classes these patterns are associated with – it simply learns to recognize patterns. In handwriting recognition, these patterns might be the length or direction of lines or the position and length of curves. To achieve this, the training algorithm adjusts the parameters one layer at a time, starting with the input layer. In other words, the algorithm lets thenetwork parameters grow from the input. This approach requires significantly less computational power than backprop.

预训练完成后,网络可以区分输入数据集中最显著的模式。然后像以前一样应用监督训练,从训练期间预先确定的参数开始。由于反向传播现在有了良好的起点,因此完成训练所需的迭代次数大大减少。

Once pretraining is complete, the network can distinguish between the most salient patterns in the input dataset. Supervised training is then applied as before, starting with the parameters predetermined during training. Since backprop now has a good starting point, it requires far fewer iterations to complete training.

追随贝尔实验室的脚步,Hinton 的团队选择攻克手写数字识别难题。这一次,他们获得了一个更大的数据集。该项目使用了 LeCun、Corinna Cortes(谷歌实验室)和 Christopher Burges(微软研究院)收集的 MNIST 数据集。MNIST 数据集包含来自美国人口普查和高中考试的 7 万个手写数字。

Following in the footsteps of Bell Labs, Hinton’s team chose to tackle handwritten digit recognition. This time, a much larger dataset was available. The project used the MNIST dataset collected by LeCun, Corinna Cortes (Google Labs), and Christopher Burges (Microsoft Research). MNIST contains 70,000 handwritten digits from the U.S. Census and high school exams.

最终的ANN准确率达到了89.75%,低于LeCun的卷积神经网络。但这并非重点。他们证明了深度全连接网络可以通过先前的无监督训练进行训练。通往更深层、更高效网络的道路已经打开。

The resulting ANN achieved an accuracy of 89.75 percent, less than that of LeCun's convolutional neural network. But that was not the point. They had shown that a deep fully connected network could be trained by means of prior unsupervised training. The path to deeper and more efficient networks had been opened.

在接下来的十年里,深度学习发展势头强劲。三大进步的融合使研究人员能够构建更大、更深的网络。更智能的算法降低了计算复杂度,更快的计算机缩短了运行时间,更大的数据集允许调整更多参数。

Over the next decade, deep learning gained momentum. The convergence of three advances allowed researchers to build larger and deeper networks. Smarter algorithms reduced computational complexity, faster computers led to shorter runtimes, and larger data sets allowed for more parameters to be tuned.

2010年,瑞士的一组研究人员进行了一项实验,旨在探究增加神经网络的深度是否真的能提高识别率。在备受推崇的神经网络大师尤尔根·施密德胡贝(Jürgen Schmidhuber)的带领下,该团队训练了一个六层神经网络来识别数字。他们的网络包含多达5710个神经元。与辛顿的团队一样,他们使用了MNIST手写数字数据集。然而,即使是MNIST数据集,对于施密德胡贝团队的目标来说也不够大。他们通过扭曲MNIST图像,人为地创建了额外的数字图像。

In 2010, a group of researchers in Switzerland conducted an experiment to see if increasing the depth of a neural network would actually translate into improved precision. Led by long-regarded neural network guru Jürgen Schmidhuber, the group trained a six-layer neural network to recognize digits. Their network consisted of a whopping 5,710 neurons. Like Hinton’s group, they used the MNIST dataset of handwritten digits. However, even MNIST wasn’t large enough for Schmidhuber’s group’s purposes. They artificially created additional images of digits by distorting the MNIST images.

生成该结果的ANN的准确率达到了99.65%。这不仅是一项世界纪录,更是一项人类级别的成就。

The ANN that produced this achieved 99.65 percent precision. That wasn't just a world record, it was a human-level achievement.

突然间,大家意识到ANN规模太小,没有任何实际用途。深度网络才是解决方案。一场人工智能革命即将到来。

Suddenly it dawned on everyone that ANNs had been too small to be of any practical use. Deep networks were the solution. A revolution in artificial intelligence was coming.

海啸

The tsunami

深度学习的浪潮席卷而来,先是语音识别,然后是图像识别,再后来是自然语言处理。短短三年内,半个世纪的模式识别研究就被彻底颠覆。

The deep learning tsunami hit in three waves: first speech recognition, then image recognition, and then natural language processing. Half a century of pattern recognition research was swept aside in just three years.

六十年来,工程界一直在努力将口语准确地转换为文本。最好的算法依赖于傅里叶变换(参见第二章)来确定谐波的幅度。然后,人们使用隐马尔可夫模型 (HMM),根据观察到的谐波含量和实际语音中已知的声音序列概率来确定所说的音素。

For sixty years, the engineering community had struggled to accurately convert spoken words into text. The best algorithms relied on the Fourier transform (see Chapter 2 ) to determine the amplitude of harmonics. Hidden Markov models (HMMs) were then used to determine the phonemes spoken based on the observed harmonic content and the known probabilities of sound sequences in real speech.

在辛顿实验室实习生 Navdeep Jaitly 的帮助下,谷歌将一半的语音识别系统产品化,替换为深度神经网络。由此产生的混合 ANN-HMM 语音识别系统采用了四层 ANN。该团队使用来自谷歌语音搜索的 5870 小时录音语音以及来自 YouTube 的 1400 小时对话对 ANN 进行了训练。新的 ANN-HMM 混合系统的性能比谷歌之前基于 HMM 的语音识别系统高出 4.7%。在自动语音识别领域,这是一个巨大的飞跃。完成谷歌的使命后,这位杰出的实习生 Jaitly 回到多伦多继续攻读博士学位。

With the help of Navdeep Jaitly, an intern in Hinton’s lab, Google ripped out half of its production speech recognition system and replaced it with a deep neural network. The resulting hybrid ANN-HMM speech recognition system featured a four-layer ANN. The group trained the ANN on 5,870 hours of recorded speech from Google Voice Search, supplemented with 1,400 hours of dialogue from YouTube. The new ANN-HMM hybrid outperformed Google’s old HMM-based speech recognition system by 4.7 percent. In the context of automatic speech recognition, that was a monumental leap forward. After completing his mission at Google, Jaitly—intern extraordinaire—returned to Toronto to complete his Ph.D.

在接下来的五年里,谷歌不断扩展和改进其基于ANN的语音识别系统。到2017年,谷歌的语音识别系统已经达到了95%的准确率,这是一个前所未有的准确率水平。

Over the next five years, Google continued to expand and improve its ANN-based speech recognition system. By 2017, Google’s speech recognition system had achieved 95 percent accuracy – a previously unheard-of level of accuracy.

2012年,辛顿团队报告称,他们设计了一个深度神经网络,用于识别静态图像中的真实物体。这些物体是日常生活中的常见事物,例如猫、狗、人、脸、汽车和植物。这个问题远非简单地识别数字那么简单。数字是由线条组成的,但物体识别需要分析形状、颜色、纹理和边缘。此外,需要识别的物体类别的数量远远超出了区区十个印度-阿拉伯数字。

In 2012, Hinton's group reported that they had designed a deep neural network to recognize real-world objects in still images. The objects were everyday things like cats, dogs, people, faces, cars, and plants. The problem was a far cry from simply recognizing numbers. Numbers are made up of lines, but object recognition requires analyzing shape, color, texture, and edges.Moreover, the number of object classes that had to be recognized far exceeded the mere ten Hindu-Arabic numerals.

该网络以其首席设计师 Alex Krizhevsky 的名字命名为 AlexNet,包含 65 万个神经元和 6000 万个参数。它包含五个卷积层和三个全连接层。此外,该项目还引入了一种简单却出奇高效的技术。在训练过程中,随机选择并抑制一些神经元。换句话说,它们被阻止激发。这项名为Dropout 的技术迫使网络将决策任务分配给更多神经元。这使得网络对输入变化的鲁棒性更强。

The network—named AlexNet after its lead designer Alex Krizhevsky—contained 650,000 neurons and 60 million parameters. It included five convolutional layers followed by three fully connected layers. What’s more, the project introduced a simple but surprisingly efficient technique. During training, a handful of neurons were randomly selected and silenced. In other words, they were prevented from firing. Dropout, as the technique was called, forces the network to distribute the decision-making task across more neurons. This makes the network more robust to variations in input.

该团队于2012年将该网络带入ImageNet大规模视觉识别挑战赛。该竞赛的数据集包含约120万张训练图像和1000个对象类别。Krizhevsky、Ilya Sutskever和Hinton的深度卷积网络在比赛中取得了压倒性胜利。AlexNet的前五名准确率达到了84.7%。也就是说,真正的对象类别在超过84%的时间内都位于ANN的前五名选择中。该网络的错误率几乎是第二名系统的一半。

The team entered the network into the ImageNet Large Scale Visual Recognition Challenge in 2012. The dataset for that competition consisted of about 1.2 million training images and 1,000 object classes. Krizhevsky, Ilya Sutskever, and Hinton’s deep convolutional network crushed the competition. AlexNet achieved a top-five accuracy of 84.7 percent. That is, the true object class was among the ANN’s top-five choices more than 84 percent of the time. The network’s error rate was nearly half that of the second-place system.

与此同时,在距离多伦多以东仅 500 公里的圣劳伦斯河沿岸,蒙特利尔大学的一个由 Yoshua Bengio 领导的研究小组正在研究如何将深度神经网络应用于文本处理。

Meanwhile, just 500 kilometres east of Toronto along the St. Lawrence River, a group at the University of Montreal, led by Yoshua Bengio, was investigating how deep neural networks could be applied to text processing.

本吉奥1964年出生于巴黎,是神经网络复兴的领军人物之一。他在蒙特利尔麦吉尔大学学习电气工程和计算机科学,并获得了工程学士和硕士学位。青少年时期,他是科幻小说迷;学生时代,他对神经网络研究充满热情。他如饥似渴地阅读了所有关于该主题的早期文章。自称“书呆子”的他,开始着手构建自己的人工神经网络(ANN)。在AT&T贝尔实验室和麻省理工学院担任博士后后,本吉奥于1993年成为蒙特利尔大学的教员。本吉奥的团队训练ANN来预测文本中单词序列的概率。

Born in Paris in 1964, Bengio was one of the figureheads of the renaissance of neural networks. He studied electrical engineering and computer science at McGill University in Montreal, where he received his bachelor's degree in engineering and his master's degree in engineering. As a teenager, he was a science fiction fan and as a student he became passionate about neural network research. He devoured all the early articles on the subject. A self-proclaimed nerd, he started building his own ANN. After working as a postdoc at AT&T Bell Labs and MIT, Bengio ended up at the University of Montreal as a faculty member in 1993. Bengio's group trained ANNs to predict the probability of word sequences in texts.

2014 年,谷歌采用了 Bengio 的工作,并将其应用于解决将文档从一种语言翻译成另一种语言的问题。当时,谷歌翻译网络服务已经运行了八年。该系统依靠传统的方法来分解句子,并将短语从一种语言映射到另一种语言。总的来说,该系统的翻译效果并不特别好。翻译出来的句子充其量只能算是可读的,但谈不上流畅。

In 2014, Google picked up Bengio's work and adapted it to the problem of translating documents from one language to another.At that point, the Google Translate web service had been in operation for eight years. The system relied on conventional approaches to breaking down sentences and mapping phrases from one language to another. Overall, the system’s translations were not particularly good. The translated sentences were at best readable, but hardly fluent.

谷歌采取了不同寻常的举措,在后端连接了两个神经网络。在这种设置中,第一个网络(编码器)的输出被输入到第二个网络(解码器) 的输出中 。其理念是,编码器将英文文本转换为抽象的数字向量。然后,解码器将逆向转换,将抽象的数字向量转换为法语。研究人员并没有指定中间的数字向量。他们只是相信训练过程能够找到合适的表示。

Google took the unusual step of connecting two neural networks on the back end. In that setup, the output of the first network—the encoder —was fed into the output of the second—the decoder . The idea was that the encoder would convert text written in English into an abstract vector of numbers. The decoder would then reverse the process and convert the abstract vector of numbers into French. The researchers did not specify the intermediate vector of numbers themselves. They simply trusted that the training procedure could find a suitable representation.

经过两年的努力,谷歌完成了八层编码器和相应的八层解码器的开发。该网络基于3600万个人工翻译的句子对进行训练。新系统的表现优于之前的谷歌翻译生产系统,翻译错误率显著降低了60%。该系统在谷歌网站上线后,双语用户反映翻译质量显著提升。

After a two-year effort, Google completed the development of an eight-layer encoder and a corresponding eight-layer decoder. The network was trained on a set of 36 million manually translated sentence pairs. The new system outperformed the previous Google Translate production system, reducing the amount of translation errors by an impressive 60 percent. When the system went live on the Google website, bilingual users reported a sudden and dramatic improvement in translation quality.

一次又一次的成功让深度学习蓬勃发展。各大公司预见到深度学习将催生出大量新应用——自动驾驶汽车、智能相机、下一代推荐引擎、加速药物研发等等。谷歌、Facebook、IBM、苹果、亚马逊、雅虎、Twitter、Adobe 和百度不遗余力地招募深度学习人才。据传,这些神经网络“巨星”的起薪超过百万美元。LeCun 被 Facebook 聘为人工智能研究总监。吴恩达加入百度担任首席科学家。65 岁的 Geoffrey Hinton 成为谷歌的暑期实习生!

Success after success led to deep learning going wild. Companies foresaw a plethora of new applications powered by deep learning – self-driving cars, smart cameras, next-generation recommendation engines, accelerated drug development, and more. Google, Facebook, IBM, Apple, Amazon, Yahoo!, Twitter, Adobe, and Baidu plucked deep learning talent wherever they could find it. Starting salaries of over a million dollars were rumored for the neural network rock stars. LeCun was hired as Director of AI Research at Facebook. Andrew Ng joined Baidu as Chief Scientist. At the age of 65, Geoffrey Hinton became a summer intern at Google!

神经网络研究员 Yoshua Bengio,2017 年。

Neural networks researcher Yoshua Bengio, 2017.

2015年,在这场“淘金热”中,LeCun、Hinton和Bengio在 《自然》杂志上发表了一篇论文 ,总结了当时的发展。深度神经网络席卷了整个人工智能领域。一切都改变了。

In 2015, in the midst of the gold rush, LeCun, Hinton, and Bengio published a paper in Nature summarizing the developments. Deep neural networks had swept aside the entire existing field of artificial intelligence. Everything had changed.

LeCun、Hinton 和 Bengio 共同获得了 2018 年 ACM 图灵奖,这是由谷歌赞助的 100 万美元奖金。

LeCun, Hinton and Bengio received the 2018 ACM Turing Award, the Google-sponsored $1 million prize they shared.

随着深度学习的巨大成功,一些人担心达到人类水平的通用人工智能(参见第五章)即将到来。LeCun 对此持保留态度:

With the runaway success of deep learning, some are concerned that human-level artificial general intelligence (see Chapter 5 ) is just around the corner. LeCun has his reservations:

我们能否用新方法创造人类智能,或许还需要攀登另外五十座大山,包括那些我们目前还无法看见的大山。我们才刚刚攀登第一座大山,或许还会攀登第二座。

Whether we will be able to use new methods to create human intelligence, well, that will probably require climbing another fifty mountains, including those we can't see yet. We've only climbed the first mountain. Maybe the second.

到目前为止,我们拥有的只是复杂的模式识别机器。但我们可以推测一下,究竟哪条路能带领我们跨越这些高山。目前最好的猜测是,这将需要一个人工神经网络(ANN)网络。重大的改进可能还需要对ANN进行彻底的革新。目前的ANN只是对生物神经网络运作方式的粗略近似。我们或许需要一个更贴近现实的模型。细节决定成败。

All we have so far are sophisticated pattern recognition machines. But we can speculate about the route that might take us over those mountains. The best guess at the moment is that it will require a network of ANNs. Major improvements may also require a fundamental overhaul of the ANN. Current ANNs are only a rough approximation of what happens in a biological neural network. A more realistic model may be needed. The devil may be in the details.

对于计算机科学界以外的人士来说,深度神经网络的威力首次展现于2016年。那一年,一项人工智能登上了全球新闻媒体的头条。尽管应用范围有限,但人工智能或许首次实现了超越人类的能力。

For those outside the computer science community, the first glimpse of the power of deep neural networks came in 2016. That year, an artificial intelligence made headlines across the world’s news media. Although limited in its application, an artificial intelligence had, perhaps for the first time, achieved superhuman capabilities.

 

 

2017 年,AlphaZero 程序以闪电般的速度自学了国际象棋、围棋和将棋。

The AlphaZero program taught itself to play chess, Go and shogi at lightning speed in 2017.

12

12

超人智慧

Superhuman intelligence

既然先前的举动无法改变,

那么事后的悔恨就确实难以承受。

Since previous moves cannot be changed,

subsequent remorse is truly difficult to bear.

作者不详,由罗伯特·W·福斯特 (Robert W. Foster) 译

Unknown author, translated by Robert W. Foster

敦煌围棋谱, 6世纪

Dunhuang Go Manual, 6th Century

2016年3月19日,一位年轻男子在首尔四季酒店的走廊里迈着坚定的步伐。一路上,他经过一排排试图吸引他注意的记者和摄影师。他身着时尚的海军蓝西装和纽扣衬衫,看起来比33岁的实际年龄年轻得多。他身材瘦削,看起来像个亚洲人。他的头发从头顶梳到额前,一丝不苟。上唇留着一丝小胡子。尽管备受瞩目,他看起来依然轻松自信。

March 19, 2016. A young man walks purposefully through the corridors of the Four Seasons Hotel in Seoul. Along the way, he passes rows of journalists and photographers trying to get his attention. Dressed in a stylish navy suit and a button-down shirt, he looks much younger than his 33 years. The man is thin and appears Asian. His hair is combed from the crown to an unwavering edge. His upper lip bears the trace of a moustache. Despite all the attention, he looks relaxed and confident.

男人离开嘈杂的走廊,走进一间静谧的会议室。一小群观众和几台电视摄像机抬头望向低矮的霓虹蓝色讲台。他坐在一块牌子右侧的黑色皮椅上。牌子上写着“李世石”。一面韩国国旗表明了他的国籍。

The man leaves the cacophony of the hallways behind him and enters a hushed conference room. A small audience and a handful of television cameras look up at a low, neon-blue podium. The man sits down in a black leather chair to the right of a sign. The letters on the sign read "Lee Sedol." A South Korean flag confirms his nationality.

黄阿贾坐在李世石对面。黄阿贾身旁的字母拼出了“AlphaGo”这个词。电脑屏幕、键盘和鼠标支架旁边是黄。两人身后,陪审团成员正低头坐着。李世石和黄世石之间有一张桌子。桌子上放着一块围棋棋盘、一个计时钟和四个碗。其中两个碗是空的。一个碗里装着一模一样的白子,另一个碗里装着相似的黑子。

Aja Huang sits opposite Lee. The letters on Huang's side spell out the word 'AlphaGo'. A computer screen, keyboard and mouse restnext to Huang. Behind the two men, the jury sits, looking down. Between Lee and Huang is a table. On it are a go board, a time clock, and four bowls. Two of the bowls are empty. One bowl contains a collection of identical white stones, the other similar black stones.

李世石被公认为世界五大围棋选手之一,曾赢得十八个国际冠军。他自幼便以神童身份就读于著名的韩国棋院(韩国棋院)。十二岁时,李世石转为职业棋手。在围棋爱好者中,他以棋风凶悍、想象力丰富而闻名。李世石——绰号“坚石”——是韩国的民族英雄。

Lee is widely regarded as one of the top five go players in the world. He has won eighteen international titles. As a child prodigy, he studied at the famous Hanguk Kiwon, the Korean go association. At the age of twelve, Lee turned professional. Among go enthusiasts, he has a reputation for playing aggressively and with imagination. Lee Sedol – the 'Strong Stone' – is a national hero in South Korea.

AlphaGo 是一个计算机程序,将复杂的算法转换成可以下棋的代码。黄仁勋的工作是将李世石的落子传递给 AlphaGo,并按照计算机的指令在棋盘上落子。AlphaGo 是由一家名为 DeepMind Technologies 的伦敦小公司开发的。黄仁勋是 AlphaGo 项目的首席程序员。两年前,DeepMind 被谷歌以约 5 亿美元的价格收购。

AlphaGo is a computer program, the complex algorithm converted into code that plays a game. Huang's job was to pass Lee's moves to AlphaGo and place stones on the board as directed by the computer. AlphaGo is the creation of a small London-based company called DeepMind Technologies. Huang is the lead programmer on the AlphaGo project. Two years earlier, DeepMind had been acquired by Google for an estimated $500 million.

谷歌是AlphaGo与李世石比赛的赞助商。比赛奖金为100万美元。如果AlphaGo获胜,奖金将捐给慈善机构。

Google is the sponsor of the competition between AlphaGo and Lee. The prize money is one million dollars. If the computer wins, the money will go to charity.

比赛前的几天里,李世石信心满满。在新闻发布会上,他声称问题不在于能否赢得比赛,而在于能否输掉一局。李世石的自信似乎并非空穴来风。此前从未有计算机在竞技比赛中击败过排名前300的职业围棋选手。在首尔的比赛之前,国际象棋大师们预测李世石将轻松赢得百万美元奖金。

In the days leading up to the match, Lee was full of confidence. At a press conference, he claimed that it wasn’t a question of whether he would win the match. It was more a question of whether he would lose a single game. Lee’s confidence seemed justified. No computer had ever beaten a top 300 professional Go player in a competitive match. Before the showdown in Seoul, grandmasters predicted that Lee would easily pocket a million dollars.

围棋与国际象棋一样,是一种抽象的战争模拟游戏。围棋起源于三千年前的中国,并于公元五至七世纪传入韩国和日本。至今,围棋在东亚地区仍然非常流行。

Like chess, Go is an abstract war simulation. The game originated in China three thousand years ago and spread to Korea and Japan during the fifth to seventh centuries AD. Go is still extremely popular in East Asia.

在正式比赛中,棋局在19x19的棋盘上进行,一局棋由多局组成。一局开始时,棋盘为空。棋手轮流将棋子放在两条线的交点上。这样的交点称为“领地”。棋手可以随意跳过一回合。一名棋手下黑棋,另一名棋手下白棋。游戏的目标是围住领地并吃掉对方的棋子。一旦棋手的棋子被对方棋子包围,棋盘上的棋子就会被移除。当双方棋手连续放弃移动而不是继续移动时,游戏结束。棋手可以通过将棋子移出棋格来认输。拥有最多领地和被吃子棋子的棋手获胜。后手棋手将获得少量奖励积分作为补偿。比赛中,每一步棋的思考时间都会用计时器记录下来。

In official matches, the game is played on a 19 by 19 grid and a match consists of several games. At the beginning of a game, the grid is empty. Players take turns placing a stone on the intersection of two lines. Such an intersection is called a territory . A player may skip a turn if he wishes. One player places black stones, the other white. The goals of the game are to enclose territories and to capture opponent stones. TheA player's stones are removed from the board once they are circled by opponent's stones. A game ends when both players pass in succession instead of making a move. A player may resign by placing a stone outside the grid. The player with the most territories and captured stones wins. The player who starts second receives a small bonus in points as compensation. In competitions, the thinking time for moves is recorded with a timer.

当你快进围棋比赛的视频时,那场面令人着迷。黑白棋子组成的复杂图案在棋盘上展开、融合,仿佛在慢舞。棋子在棋盘上盘旋、消失,棋局中时不时地出现变化。围棋爱好者们看到了围棋中蕴含的美。对他们来说,围棋体现了棋手的想象力、勇气和决心。围棋的价值观——优雅与谦逊——至今仍在年轻棋手心中根深蒂固。

When you fast-forward a video of a game of Go, the spectacle is mesmerizing. Intricate patterns of black and white stones develop, merge, and colonize the board as if in a slow dance. Sudden bursts of activity transform the board as stones are circled and disappear. Go enthusiasts see an underlying beauty in the game. For them, the game is a reflection of a player’s imagination, courage, and determination. The values ​​of the game—elegance and humility—are still instilled in players at a young age.

围棋规则易学,但其复杂程度却非同凡响。围棋棋盘面积是国际象棋棋盘(8×8)的五倍多。围棋对局平均需要150步。每步棋棋手必须考虑大约250种可能性。围棋理论决策树(参见第五章)包含天文数字般的250150个节点 ,即10359个 节点。据此估算,围棋比国际象棋复杂10226 倍(1后面跟着226个零)。

Although the rules are easy to learn, Go is a very complex game. A Go board is more than five times the size of a chessboard (8 × 8). Go games last, on average, 150 moves. In making a move, a Go player must consider roughly 250 possibilities. The theoretical decision tree of a Go game (see Chapter 5 ) contains an astronomical 250 150 or 10 359 nodes. By that estimate, Go is 10 226 (a 1 with 226 zeros after it) times more complicated than chess.

比赛

The match

AlphaGo与李世石的比赛是五局三胜制的较量。据估计,仅在中国就有6000万电视观众通过电视观看了这场比赛。YouTube上还有十万名围棋爱好者观看英文直播。

The match between AlphaGo and Lee is a battle of the best of five. An estimated 60 million television viewers in China alone are watching the match on TV. A hundred thousand enthusiasts are glued to the English-language live coverage on YouTube.

DeepMind 团队在大楼地下室的指挥中心观看比赛。房间墙面上布满了屏幕。一些屏幕播放着比赛室的摄像机画面。另一些屏幕则显示着一排排数字和图表,总结了 AlphaGo 对比赛的分析。DeepMind 首席执行官 Demis Hassabis 和项目首席研究员 Don Silver 从这个有利位置观看比赛的进展。和团队的其他成员一样,Hassabis 和 Silver 感到紧张,但却无能为力。

The DeepMind team watches from a command center in the basement of the building. The room is decorated with a wall of screens. Some of the screens show camera feeds from the competition room. Others display rows of numbers and graphs that summarize AlphaGo’s analysis of the game. DeepMind CEO Demis Hassabis and project principal investigator Don Silver watch the game unfold from this vantage point. Like the rest of the team, Hassabis and Silver are nervous, but helpless.

第一天,第一局。李世石先落子。然后,诡异的是,现场沉默了半分钟。AlphaGo团队屏住呼吸。机器能正常工作吗?然后机器做出了决定,黄仁勋为AlphaGo落下了第一子。

Day one, game one. Lee places the first stone. Then, bizarrely, there is silence for half a minute. The AlphaGo team holds its breath. Is the machine working? Then the machine makes a decision and Huang places the first stone for AlphaGo.

AlphaGo从一开始就发起进攻。李世石似乎对此感到有些意外。AlphaGo的棋法完全不像计算机。然后,AlphaGo迈出了第102步。它极具攻击性——这开启了一场复杂的小规模对抗。李世石向后靠去,揉了揉后颈。他似乎有些担心。但他又下定决心,投入战斗。84步之后,李世石放弃了。指挥中心里的反应是欣喜若狂。

AlphaGo attacks from the start. Lee seems a bit surprised by this. AlphaGo does not play like a computer at all. Then AlphaGo makes move 102. It is aggressive – an opening to complicated skirmishes. Lee leans back and rubs the back of his neck. He seems worried. He regains his resolve and goes into battle. 84 moves later Lee gives up. The reaction in the command center is euphoric.

赛后新闻发布会上,李世石和冷静下来的哈萨比斯向媒体发表了讲话。两人拄着拐杖,分别坐在空荡荡的舞台上。李世石看起来孤独、失落、被抛弃。他深感失望,但还是勇敢地接受了失败。第二天早上,AlphaGo 的胜利登上了头条新闻。

Afterwards, Lee and a calmed-down Hassabis address the assembled media at the post-game press conference. The two sit separately on crutches on an empty stage. Lee looks lonely, lost, abandoned. He is deeply disappointed but accepts his defeat sportingly. The next morning, AlphaGo's victory is front-page news.

第二天,第二局。这一次,李世石知道该做什么。他下得更加谨慎。第37步,AlphaGo迈出了一步出人意料的棋步——人类很少会走这一步。李世石震惊地走出了会议室。黄仁勋和裁判们都惊呆了,坐在那里。几分钟后,李世石回过神来,重返战场。211步之后,李世石再次认输。

Day two, game two. This time Lee knows what to expect. He plays more cautiously. On move 37, AlphaGo makes an unexpected move – one that humans rarely make. Shaken, Lee walks out of the conference room. Huang and the referees sit there, stunned. Minutes later, his thoughts collected, Lee returns to the fray. After 211 moves, Lee resigns again.

AlphaGo的第37步棋决定了胜负。计算机估计,人类下出这步棋的概率只有万分之一。欧洲围棋冠军樊麾惊叹不已。对他来说,第37步棋“太漂亮了,太漂亮了”。AlphaGo展现了超越人类经验的洞察力。这台机器充满创造力。

AlphaGo's move 37 was decisive. The computer estimated that the chance of a human making that move was one in ten thousand. European Go champion Fan Hui was filled with awe. To him, move 37 was 'So beautiful. So beautiful.' AlphaGo had demonstrated an insight beyond human experience. The machine was creative.

李在新闻发布会上回顾了这次聚会:

At the press conference, Lee reflected on the party:

昨天我很惊讶。但今天我却无话可说。

Yesterday I was surprised. But today I am speechless.

如果你看看这场比赛的进行方式,

If you look at the way the game was played,

我必须承认,这显然不是我的错。

I must admit that it was clearly less on my part.

从比赛一开始,从来没有一个时刻

From the start of the game there was never a single moment

我感觉自己正在引领潮流。

where I felt like I was leading.

第三天,第三局。李世石的表情意味深长——起初平静,然后惊慌失措,接着是痛苦,最终是沮丧。四个小时后,他放弃了。除了谷歌和DeepMind之外,AlphaGo克服了所有困难,赢得了比赛。

Day three, game three. Lee’s expression speaks volumes – calm at first, then alarmed, followed by torment, and finally dismay. He gives up after four hours of play. Against all odds – except those of Google and DeepMind – AlphaGo wins the game.

李看起来筋疲力尽。尽管沮丧,他仍然彬彬有礼:

Lee seems exhausted. Yet in his dejection he is courteous:

很抱歉没能达到大家的期望,感觉有点无力。

I apologize for not being able to live up to the expectations of many people. I felt kind of powerless.

一种奇特的忧郁感席卷了整个事件。每个人都被它所感染,甚至包括DeepMind团队。在场的人见证了一位伟人的苦难。李开复的一位竞争对手写道:

A strange kind of melancholy then takes hold of the events. Everyone is affected by it, even the DeepMind team. Those present witness the suffering of a great man. One of Lee's rivals notes that Lee:

与一个看不见的对手进行了一场非常孤独的战斗。

had fought a very lonely battle against an invisible opponent.

虽然比赛结果已成定局,但李世石和AlphaGo仍继续进行第四局和第五局。在第四局中,李世石更加展现出自己的风格。“强子”的策略风险很大。他的第78步——一步进攻棋,一颗白棋楔入两颗黑棋之间——被一位解说员描述为“神棋”。AlphaGo对此的反应对这台机器来说是灾难性的。棋局很快变得群龙无首。由于没有退路,计算机开始做出毫无意义的举动。最终,AlphaGo放弃了。

And although the outcome of the match is now final, Lee and AlphaGo continue, playing games four and five. In game four, Lee is more himself. The 'Strong Stone' follows a strategy with a lot of risk. His move 78 - an attacking move, with a white stone forming a wedge between two black stones - is described by one of the commentators as 'a move of God'. The reaction of AlphaGo to this is disastrous for the machine. The game quickly becomes rudderless. With no escape route, the computer starts making senseless moves. Eventually, AlphaGo gives up.

李世石在第五局尝试了同样非常冒险的策略。这一次,没有超级招式。李世石不得不认输。

Lee tries the same very risky approach in the fifth game. This time there is no supermove. Lee has to resign.

AlphaGo以4-1赢得比赛。

AlphaGo wins the match 4-1.

制胜之举

The winning move

AlphaGo 的胜利在围棋界和计算机科学界都引起了轩然大波。此前对计算机性能的预测表明,这至少还需要 15 年的时间。理论上,攻克围棋需要比 2016 年更快的设备。但实际上,AlphaGo 的成功在于其算法,而非物理设备。

AlphaGo’s win sent shockwaves through both the Go and computer science communities. Predictions of computer performance had suggested that this would take at least another 15 years. The theory was that tackling Go would require much faster equipment than was available in 2016. In reality, AlphaGo’s success was in its algorithms, not its physical equipment.

AlphaGo 的硬件以 2016 年的标准来看,属于中等水平。在开发过程中,DeepMind 团队只部署了 48 个中央处理器和 8 个图形处理器——一个业余爱好者在车库里就能轻松安装的配置。比赛期间,AlphaGo 在谷歌的一台联网计算机上运行。数据中心。该程序占用了1920个中央处理器和280个图形处理器。相比之下,当时世界上最强大的超级计算机——中国的天河二号——拥有310万个中央处理器单元。相比之下,AlphaGo显得逊色不少。

AlphaGo’s hardware was average by 2016 standards. During development, the DeepMind team had deployed just 48 central processing units and eight graphics processors—a setup that a hobbyist could easily set up in their garage. During the competition, AlphaGo ran on computers in one of Google’s Internet-connecteddata centers. The program occupied 1,920 central processors and 280 graphical processors. In contrast, the most powerful supercomputer in the world at the time – the Chinese Tiamhe-2 – had 3.1 million central processor units. AlphaGo was a wimp by comparison.

与亚瑟·塞缪尔的跳棋程序类似,AlphaGo 算法使用蒙特卡洛搜索树(参见 第五章)。轮到计算机下棋时,它会寻找最有希望的下一步棋。对于每一步棋,它会分析对手最有可能的应对策略。然后,它会评估自己可能的反击策略。就这样,计算机以当前棋盘位置为根,构建了一棵未来可能走法的树。

Like Arthur Samuel's checkers-playing program, the AlphaGo algorithm uses a Monte Carlo search tree (see Chapter 5 ). When it is the computer's turn, it hunts for the most promising next move. For each of these, it examines the opponent's most likely responses. Then it evaluates its own possible countermoves. In this way, the computer produces a tree of possible future moves with the current board position as its root.

树构建完成后,计算机会使用极小极大算法来选择最佳走法(参见第五章)。计算机从最远的棋盘位置(即树的叶子节点)开始。然后,它沿着树向根节点移动。在每个分支上,计算机都会沿着最佳走法返回树上。对于自己的走法,最佳选择是最大化计算机获胜机会的走法。对于对手的走法,计算机会选择最小化自身获胜概率的走法。当算法到达树的根节点时,计算机会选择它认为最有可能赢得比赛的走法。

Once the tree is constructed, the computer uses a minimax procedure to choose the best move (see Chapter 5 ). The computer starts with the farthest forward-looking board positions – the leaves of the tree. It then moves through the tree toward the root. At each branch, it follows the best move back up the tree. For its own moves, the best choice is the one that maximizes the computer's chance of winning. For its opponent's moves, the computer chooses the moves that minimize its own probability of winning. When the procedure reaches the root of the tree, the computer chooses the move it considers to have the best chance of winning the game.

AlphaGo 使用 ANN 来评估棋盘局面。棋盘局面用一张数字表表示。每个数字表示棋盘交叉点上是否有黑棋、白棋或没有棋子。为了评估局面,将数字表输入 ANN。神经网络会给出一个分数,用来表示局面的强弱。

AlphaGo uses ANNs to evaluate board positions. A board position is represented by a table of numbers. Each number indicates whether there is a black stone, a white stone, or no stone at an intersection in the grid. To evaluate a position, the table of numbers is fed to an ANN. The neural network provides a score that indicates the strength of a position.

AlphaGo 的神经网络是 Yann LeCun 为数字识别而引入的卷积网络的放大版(参见第 11 章)。实际上,数字表被当作图像来处理。AlphaGo 的神经网络识别棋盘上的图案,就像 LeCun 的网络识别数字中的直线和曲线一样。

AlphaGo's neural networks are larger versions of the convolutional networks that Yann LeCun introduced for digit recognition (see Chapter 11 ). In effect, the table of digits is treated as if it were an image. AlphaGo's neural networks recognize the patterns on the board just as LeCun's network recognized the lines and curves in digits.

AlphaGo 使用三个神经网络。

AlphaGo uses three neural networks.

第一个是价值网络。价值网络估算给定位置的获利概率。价值网络在树搜索结束时对位置进行评分。

The first is a value network. The value network estimates the probability of profit at a given position. The value network scores the positions at the end of the tree search.

第二个ANN是一个策略网络。策略网络在树搜索中起到引导作用。策略网络对位置进行评分根据其前景如何进行选择。如果某个职位看起来未来可能带来利润,则会被赋予较高的策略得分。只有策略得分高的职位才会被更深入地研究。通过这种方式,策略网络可以调节搜索的广度。

The second ANN is a policy network. The policy network serves as a guide in the tree search. The policy network scores a positionbased on how promising it is. If a position looks like it could lead to profit in the future, it is assigned a high policy score. Only positions with high policy scores are investigated more deeply. In this way, the policy network regulates the breadth of the search.

如果价值网络完全精确,那么树搜索就没有必要了。计算机只需评估所有后续位置并选择最佳位置即可。前瞻功能通过向前滚动位置来提高精度。随着游戏接近尾声,预测结果变得越来越容易,因此价值网络也变得越来越准确。

If the value network were completely precise, the tree search would be unnecessary. The computer would simply evaluate all the following positions and choose the best one. The look-ahead improves the precision by rolling the positions forward. As the game gets closer to the end, it becomes easier to predict the outcome, and therefore the value network becomes increasingly accurate.

理想情况下,价值网络也应该用于策略决策。同样,价值网络的精确度不够。单独的策略网络可以提高评估早期游戏位置的准确性。价值网络的训练目标是提高准确性,而策略网络的训练目标是在树搜索中不错过有希望的路线。

Ideally, the value network would also be used for policy decisions. Again, the value network is not precise enough. A separate policy network provides greater accuracy in assessing early game positions. The value network is trained for accuracy, while the policy network is trained not to miss promising routes in the tree search.

第三个网络是 SL 价值网络,其中 SL 代表监督学习。该网络经过训练,能够以与人类相同的方式对局面进行评分。其他网络则尽力确定真正的获胜概率。借助 SL 价值网络,计算机可以预测人类玩家最有可能的走法。

The third network is an SL value network, where SL stands for Supervised Learning. That network is trained to score positions in the same way that humans do. The other networks do their best to determine the true chances of winning. With the SL value network, the computer can predict the most likely move of a human player.

AlphaGo 的神经网络训练分三个阶段。

AlphaGo's neural networks were trained in three phases.

在第一阶段,SL 价值网络采用监督学习进行训练(参见第 11 章)。该网络包含 13 层神经元。训练使用从 KGS 围棋数据库中获取的棋局和走法进行。KGS 让全球玩家可以免费在线对弈围棋。对局记录已录制,可在 KGS 网站上查看。AlphaGo 使用该数据库收集棋盘位置和人类棋步的样本。来自 16 万盘对弈的 3000 万个棋局被用于训练该网络。

In the first phase, the SL value network was trained using supervised learning (see Chapter 11 ). The network contained thirteen layers of neurons. Training was performed using positions and moves obtained from the KGS Go database. KGS enables players worldwide to play Go online for free. The games are recorded and available on the KGS website. AlphaGo used the database to have examples of board positions and the moves that people make. Thirty million positions from 160,000 games were used to train the network.

在第二阶段,SL价值网络被细化,形成策略网络。这次采用了强化学习。网络进行自我对抗。强化算法以每场比赛的结果(胜或负)作为参考,并以此调整网络参数。 AlphaGo 与一组旧版本的 AlphaGo 进行了 120 万盘对弈。随着对弈次数的增加,AlphaGo 的表现也逐渐提升。在测试中,最终的策略网络在 80% 的对局中击败了原始的 SL-value 网络。

In the second phase, the SL value network was refined to form a policy network. This time, reinforcement learning was used. The network played go against itself. The reinforcement algorithm used the outcome of each game (win or loss) as a reference against which the network parameters could be adjusted. AlphaGo played 1.2 million games against a set of older versions of itself. As AlphaGo played more games, AlphaGo's performance gradually crept up. In tests, the resulting policy network beat the original SL-value network in 80 percent of the games.

在第三阶段,团队利用策略网络提供初始价值的价值网络。再次运用强化学习。他们没有从头开始进行完整的对局,而是以 KGS 数据库中各种棋局的局面作为起点。此外,他们还进行了 3000 万次对局,以完成价值网络的训练。

In the third phase, the team used the policy network to provide a value network of initial values. Again, reinforcement learning was used. Instead of playing complete games from scratch, a variety of positions from games in the KGS database were used as a starting point. An additional 30 million games were played to complete the training of the value network.

这三个神经网络是 AlphaGo 与以往围棋计算机的主要区别。以往,棋局评估采用手工规则和评分方法(例如专家系统和基于案例的推理)。而 AlphaGo 的人工神经网络 (ANN) 则提供了更精准的棋局评估。

These three neural networks were the main difference between AlphaGo and previous Go-playing computers. Previously, positions were assessed using artisanal rules and scoring methods (i.e., expert systems and case-based reasoning). AlphaGo's ANNs provided much more precise position assessments.

AlphaGo 神经网络的精准度源于三个因素的融合。首先,深度神经网络非常擅长学习输入和输出之间的复杂关系。其次,神经网络在训练过程中接触了海量数据。在备战比赛的过程中,AlphaGo 分析的围棋走法比任何人类都多。第三,算法和硬件的进步使得在合理的时间内训练这些大型神经网络成为可能。

The precision of AlphaGo's neural networks comes from the fusion of three factors. First, deep ANNs are very good at learning complex relationships between inputs and outputs. Second, the networks were exposed to huge amounts of data during training. In preparing for the match, AlphaGo analyzed more go moves than any human has ever done. Third, advances in algorithms and hardware made it possible to train these large networks in a reasonable amount of time.

这些因素解释了 AlphaGo 为何超越了之前的程序,但并不能解释 AlphaGo 为何能够击败李世石。对围棋和国际象棋大师思维过程的分析表明,他们考虑的局面比 AlphaGo 少得多。人类的树搜索比计算机的要窄得多、浅得多。因此,人类的模式识别必然比 AlphaGo 高效得多。AlphaGo 以更快的处理速度弥补了这一缺陷。在比赛中,它考虑的棋局局面比人类多得多。AlphaGo 对神经细胞行为的电子模拟速度很快,这使得它在树搜索中能够考察更多的局面。这就是 AlphaGo 能够击败李世石的原因。

These factors explain why AlphaGo outperformed previous programs, but they do not explain why AlphaGo was able to beat Lee Sedol. Analyses of the thought processes of Go and chess grandmasters suggest that they consider far fewer positions than AlphaGo. The human tree search is much narrower and shallower than the computer's. Human pattern recognition must therefore be much more efficient than AlphaGo's. AlphaGo makes up for this shortcoming with faster processing. In a match, it considers far more board positions than humans do. The high speed of AlphaGo's electronic simulation of nerve cell behavior allows it to examine far more positions in its tree search. That is how AlphaGo was able to beat Lee Sedol.

这意味着 ANN 的模式识别能力仍有很大提升空间。

This meant that there was still plenty of room to improve the pattern recognition capabilities of ANNs.

DeepMind

DeepMind

在外人看来,DeepMind 似乎一夜成名,但事实显然并非如此。该公司联合创始人兼首席执行官德米斯·哈萨比斯 (Demis Hassabis) 从小就对棋盘游戏和电脑产生了兴趣。

To outsiders, it must have seemed like DeepMind had become an overnight success, but that was clearly not the case. Demis Hassabis, the company’s co-founder and CEO, had been thinking about board games and computers since he was a kid.

哈萨比斯1976年出生于英国伦敦。他以“在北伦敦出生长大”而自豪。哈萨比斯13岁时就达到了国际象棋大师的水平。他用奖金购买了他的第一台电脑——辛克莱Spectrum 48K——并自学编程。不久之后,他就完成了他的第一个国际象棋程序。

Hassabis was born in London, England in 1976. He prides himself on being “born and bred in North London.” Hassabis reached master level in chess at the age of thirteen. He spent his prize money on his first computer – the Sinclair Spectrum 48K – and taught himself to program. It wasn’t long before he had completed his first chess-playing program.

德米斯·哈萨比斯预测,他的 DeepMind 团队正在开发的通用算法可以解决各种问题,包括环境、医疗保健、气候和基础设施等领域的问题。

Demis Hassabis predicts that the general algorithms his team at DeepMind is developing could find solutions to a wide range of problems, including those in the areas of the environment, healthcare, climate and infrastructure.

哈萨比斯16岁高中毕业,进入一家电脑游戏开发公司(Bullfrog)工作。一年后,他成为广受欢迎的模拟游戏 《主题公园》(Theme Park)是一款商业模拟游戏。哈萨比斯离开公司后,就读于剑桥大学计算机科学专业。闲暇时,他参加了一年一度的智力运动奥林匹克竞赛——Pentamind。Pentamind 让顶尖选手在五种不同的游戏中相互较量:西洋双陆棋、国际象棋、拼字游戏、围棋和扑克。哈萨比斯五次赢得该项比赛,这一纪录至今无人打破。

Hassabis graduated from high school at the age of sixteen and went to work for a computer game development company (Bullfrog). A year later he was co-designer and lead programmer of the popularsimulation game Theme Park, a business simulation. After Hassabis left the company, he enrolled in a computer science degree program at Cambridge University. In his spare time, he competed in the Pentamind competition at the annual Mind Sports Olympiad. Pentamind pits elite players against each other in five different games: backgammon, chess, scrabble, go, and poker. Hassabis would go on to win the competition five times, a record that still stands.

回顾自己的成就,哈萨比斯说道:

Looking back on the scope of his achievements, Hassabis said:

我很容易感到无聊,这个世界太有趣了,有那么多令人兴奋的事情可以做。如果我是一名运动员,我想成为一名十项全能运动员。

I get bored easily and the world is so interesting, there are so many exciting things to do. If I were a physical athlete, I would want to be a decathlete.

从剑桥大学毕业后,哈萨比斯创立了自己的独立电子游戏公司 Elixir Studios。该公司发行了两款游戏,但随后陷入财务困境。2005年,公司倒闭。哈萨比斯在正式声明中强调了他对事态发展的失望:

After graduating from Cambridge University, Hassabis founded his own independent video game company, Elixir Studios, which released two games but then ran into financial difficulties. The company closed down in 2005. Hassabis' formal statement on the closure emphasized his disappointment with the turn of events:

当前的电脑游戏行业似乎不再为想要实现创新和原创想法的小型独立开发者提供空间。

It seems that the current computer game industry no longer offers space for small independent developers who want to work on innovative and original ideas.

哈萨比斯决定他的职业生涯需要一个新的方向。他开始了构建人工智能的使命。他坚信最好的第一步是了解生物智能的运作方式,因此在伦敦大学学院攻读认知神经科学博士学位。该领域探索人脑的运作方式,通常使用计算机模型来更好地理解大脑的功能。在获得博士学位之前,哈萨比斯就发表了一系列关于该主题的高调研究论文。

Hassabis decided that his career needed to take a new direction. He embarked on a mission to build artificial intelligence. Convinced that the best first step was to understand how biological intelligence works, he began his PhD in cognitive neuroscience at University College London. The field explores how the human brain works, often using computer models to better understand how brain functions. Hassabis published a series of high-profile research papers on the topic before he earned his PhD.

凭借这些新见解,哈萨比斯于2010年与肖恩·莱格(Shane Legg)和穆斯塔法·苏莱曼(Mustafa Suleyman)共同创立了DeepMind科技公司。哈萨比斯和苏莱曼从小就认识。哈萨比斯和莱格是在伦敦大学学院攻读博士学位期间相识的。

Armed with these new insights, Hassabis co-founded DeepMind Technologies in 2010 with Shane Legg and Mustafa Suleyman. Hassabis and Suleyman had known each other since childhood. Hassabis and Legg met while doing PhDs at UCL.

DeepMind 首次引起广大科学界的关注是通过发表于这篇发表在《自然》杂志上的论文描述了DeepMind训练的用于玩雅达利电子游戏的人工神经网络。这些游戏是20世纪80年代的经典投币式街机游戏,包括 《太空侵略者》、《打砖块》和《河上突袭》。DeepMind 的神经网络将屏幕图像作为输入,输出是游戏的控制信号——操纵杆触点和按钮。实际上,人工神经网络取代了人类玩家。

DeepMind first came to the attention of the broader scientific community through a letter to the editor published inthe journal Nature. The letter described an artificial neural network that DeepMind had trained to play Atari video games. The games were the coin-operated arcade classics of the 1980s, including Space Invaders, Breakout , and River Raid. DeepMind’s neural network took the screen image as input. The output was the game’s control signals—the joystick contacts and the buttons. In effect, the ANN replaced the human player.

DeepMind 的 ANN 无需任何指令就能自学玩太空侵略者。唯一的预编程目标是尽可能多地得分。起初,网络随机游戏。通过反复试验和学习算法,网络逐渐掌握了一套得分策略。训练结束时,DeepMind 的神经网络在太空侵略者游戏中的表现优于任何以前的算法。这本身就是一项成就。但值得注意的是,网络随后学会了如何玩 49 种不同的 Atari 电子游戏。这些游戏种类繁多,需要不同的技能。网络不仅可以玩游戏,还可以玩得和专业游戏测试员一样好。这是前所未有的。DeepMind 的 ANN 已经在很多任务上表现出色。ANN 首次展示了通用学习能力。

DeepMind’s ANN had taught itself to play Space Invaders , without any instructions. The only pre-programmed goal was to score as many points as possible. At first, the network played randomly. Through trial and error and a learning algorithm, the network gradually acquired a set of point-scoring tactics. By the end of the training, DeepMind’s neural network was better at Space Invaders than any previous algorithm. That in itself was an achievement. But what was remarkable was that the network then learned how to play 49 different Atari video games. The games were varied and required different skills. Not only could the network play the games, it could play them as well as a professional game tester. This was new. DeepMind’s ANN had excelled at a wide range of tasks. For the first time, an ANN had demonstrated general-purpose learning.

一年后,就在与李世石比赛前两个月,DeepMind 在《自然》杂志上发表了另一篇论文。在论文中,该公司描述了 AlphaGo,并顺便提到该程序击败了欧洲围棋冠军樊麾。这篇论文对李世石等人而言,本应是一个警示信号。但欧洲在围棋领域被认为是一片死水,樊麾被认为犯了错误。然而,樊麾本人对 AlphaGo 印象深刻,以至于他接受了邀请加入 DeepMind 团队,担任顾问,为与李世石的比赛做准备。

A year later—and just two months before the match against Lee—DeepMind published another paper in Nature . In it, the company described AlphaGo and mentioned in passing that the program had defeated European Go champion Fan Hui. That paper should have been a warning sign, for Lee Sedol and others. But Europe was considered a backwater when it came to Go, and Fan Hui was thought to have made mistakes. Fan Hui himself, however, was so impressed with AlphaGo that he accepted an offer to join the DeepMind team as an advisor as it prepared for the match against Lee Sedol.

AlphaGo 大胜李世石成为全球头条新闻。相比之下,随后击败世界排名第一的比赛却令人失望。2017 年 5 月,AlphaGo 以 3-0 击败了 19 岁的柯洁。这一次,这场比赛几乎没有引起媒体的关注。世界似乎已经接受了人类的失败,并继续前进。胜利后,哈萨比斯表示,基于分析AlphaGo 杰的棋艺近乎完美。但近乎完美已不再足够。比赛结束后,DeepMind 宣布 AlphaGo 退出后续比赛。

AlphaGo's resounding victory over Lee made headlines around the world. In contrast, the subsequent defeat of the world number one was an anticlimax. In May 2017, AlphaGo defeated 19-year-old Ke Jie 3-0. This time, the match received little media attention. The world seemed to have accepted humanity's defeat and moved on. After the win, Hassabis said that based on the analysisof AlphaGo Jie had played almost perfectly. But almost perfect was no longer enough. After the match, DeepMind withdrew AlphaGo from further competitive matches.

但该公司继续致力于研究下围棋的计算机。它在 《自然》杂志上发表了另一篇论文,描述了一个名为 AlphaGo Zero 的新型神经网络程序。AlphaGo Zero 使用稀疏树搜索架构和单个神经网络。这个双头网络取代了其前身的策略和价值网络。AlphaGo Zero 使用了一种新的、更高效的训练程序,该程序完全基于强化学习。不再需要人类动作数据库。AlphaGo Zero 仅用 40 天就从零开始自学了围棋。在此期间,该程序玩了 2900 万局游戏。机器在每次移动之间只有 5 秒钟的处理时间。AlphaGo 与柯洁击败的 AlphaGo 版本进行了测试。AlphaGo Zero 以 100 比 0 的比分获胜。

But the company continued to work on computers that play Go. It published another paper in Nature , describing a new neural-network program it called AlphaGo Zero. AlphaGo Zero used a sparse tree search architecture and only a single neural network. This single two-headed network replaced the policy and value networks of its predecessor. AlphaGo Zero used a new, more efficient training procedure based solely on reinforcement learning. The need for a database of human moves was eliminated. AlphaGo Zero taught itself to play Go from scratch in a mere forty days. During that time, the program played 29 million games. The machine was allowed only five seconds of processing time between moves. AlphaGo was tested against the version of AlphaGo that Ke Jie had defeated. AlphaGo Zero won by a score of 100 games to zero.

仅用四十天时间,这台计算机就自学成才,下围棋比任何人类都好。AlphaGo 无疑是超人。

In just forty days, the computer had taught itself to play Go better than any human ever had. AlphaGo was certainly superhuman.

人类围棋大师们专注于研究AlphaGo Zero的棋法。他们发现AlphaGo Zero运用了此前未知的制胜策略。柯洁开始将这些新战术融入自己的技能库。围棋史上的一个新时代即将到来。人类围棋大师如今成了机器的学生。生物神经网络正在从这些人工智能创造的成果中学习。

Human Go grandmasters focused on the moves of AlphaGo Zero. They discovered that AlphaGo Zero used previously unknown game-winning strategies. Ke Jie began to incorporate the new tactics into his own repertoire. A new era in the history of Go was dawning. Human grandmasters were now students of a machine. Biological neural networks were learning from their artificial creations.

然而,AlphaGo Zero 的真正意义并不在于围棋棋盘。它真正的意义在于,AlphaGo Zero 是一个通用问题解决器的原型。其软件内置的算法可以应用于其他问题。这种能力将使 ANN 能够承担新的任务,并解决它们从未遇到过的问题——这是迄今为止只有人类和高度进化的哺乳动物才能做到的。

The real significance of AlphaGo Zero, however, is not on the Go board. Its true significance lies in the fact that AlphaGo Zero is a prototype of a general problem solver. The algorithm built into its software can be applied to other problems. That capability will allow ANNs to be given new tasks and solve problems they have not encountered before – something that only humans and highly evolved mammals have been able to do so far.

2018 年, 《自然》杂志的另一篇论文首次展现了通用问题解决能力的迹象。 这一次,DeepMind 团队训练了一个名为 AlphaZero 的 ANN,让它下围棋、国际象棋和将棋(一种日本象棋)。AlphaZero 通过与自己对弈学会了这三种游戏,这并不令人意外。AlphaZero 在这三种游戏中击败了之前的世界冠军程序,也并不令人意外。 击败了(Stockfish、Elmo、AlphaGo Zero)。然而令人惊讶的是,通过随机对弈,AlphaZero 用 9 小时学会了国际象棋,12 小时学会了将棋,13 天学会了围棋。相比之下,人类的思维显得微不足道。

The first signs of general problem-solving abilities appeared in yet another paper in Nature in 2018. This time, the DeepMind team had trained an ANN called AlphaZero to play Go, chess, and shogi (a Japanese game of chess). It wasn’t particularly surprising to read that AlphaZero learned to play all three games based on playing against itself. Nor was it particularly eyebrow-raising that AlphaZero beat previous world-champion programs in all three games defeated (Stockfish, Elmo, AlphaGo Zero). What was astonishing, however, was that, using random play, AlphaZero learned chess in nine hours, shogi in twelve hours, and go in thirteen days. The human mind seemed feeble in comparison.

 

 

算法催生了比特币,这种虚拟货币的价格波动和跌幅备受关注。

Algorithms have given birth to Bitcoin, a virtual currency whose price fluctuations and price drops have received much attention.

十三

13

后续步骤Next steps

Next steps

就加密货币而言,我几乎可以肯定地说,它的结局会很糟糕。

In terms of cryptocurrencies, I can pretty much say with certainty that it will end badly.

沃伦·巴菲特

Warren Buffet

CNBC 2018

On CNBC, 2018

计算机算法从根本上改变了我们的生活方式。信息技术深深植根于我们的工作场所。沟通被电子邮件、社交媒体和即时通讯应用所取代。我们的空闲时间被电脑游戏、流媒体音乐和在线电影所占据。推荐算法操纵着我们的购买决策。我们的恋爱关系也由算法决定。很多事情都发生了变化。然而,在科技巨头时髦的开放式办公室、苦苦挣扎的初创公司的临时工作站以及大学教授杂乱无章的实验室里,还有更多革命性的技术正在被开发。在最后一章中,我们将探讨两种可能改变世界的新算法。

Computer algorithms have fundamentally changed the way we live. Information technology is deeply embedded in our workplaces. Communication is entrusted to email, social media, and messaging apps. Our free time is dominated by computer games, streaming music, and online movies. Recommendation algorithms manipulate our purchasing decisions. Our romantic relationships are dictated by algorithms. Much has changed. But many more revolutionary technologies are being developed in the trendy open-plan offices of tech giants, the makeshift workstations of struggling startups, and the cluttered labs of university professors. Here, in this final chapter, we explore two new algorithms that have the potential to change the world.

加密货币

Cryptocurrency

首先是 加密货币的底层算法。加密货币是一种货币形式,仅以信息的形式存在于计算机网络中。世界上第一个加密货币比特币目前流通量超过1700万枚,2019年实际总价值达2000亿美元。加密货币似乎即将颠覆全球金融体系。

The first of these is the algorithm that underlies cryptocurrencies. Cryptocurrencies are a form of money that exists only as information contained in a computer network. The world’s first cryptocurrency, Bitcoin, now has over 17 million “coins” in circulation with a real total value of $200 billion in 2019. Cryptocurrencies seem poised to disrupt the global financial system.

加密货币起源于 20 世纪 90 年代兴起的密码朋克运动。密码朋克是由一群技艺精湛的密码学家、数学家、程序员和黑客组成的松散组织,他们坚信电子隐私的必要性。他们通过电子邮件列表和在线讨论组联系,开发开源软件,供用户自由使用,以保护他们的数据和通信安全。埃里克·休斯 (Eric Hughes) 在《密码朋克宣言》 (1993) 中概述了他们的理想:

Cryptocurrency has its origins in the cypherpunk movement that emerged in the 1990s. Cypherpunks are a loose collection of skilled cryptographers, mathematicians, programmers, and hackers who passionately believe in the need for electronic privacy. Connected through email lists and online discussion groups, cypherpunks develop open-source software that users can freely use to secure their data and communications. Their ideals were outlined by Eric Hughes in A Cypherpunk's Manifesto (1993):

隐私对于电子时代的开放社会来说是必需的。

Privacy is necessary for an open society in the electronic age.

我们不能指望政府、企业或其他大型、不露面的组织仁慈地给予我们隐私。

We cannot expect governments, corporations, or other large, faceless organizations to benevolently grant us privacy.

开放社会中的隐私[...]需要加密。

Privacy in an open society […] requires cryptography.

密码朋克编写代码。我们知道必须有人编写隐私防御软件,而且由于隐私只有在每个人都拥有隐私的情况下才能实现,所以我们编写了代码。我们发布代码,以便我们的密码朋克同伴可以使用并进行实践。

Cypherpunks write code. We know that someone has to write privacy defense software, and since we can’t have privacy unless everyone has it, we write it. We publish our code so that our fellow cypherpunks can use it and play with it.

我们的代码可供全世界任何人免费使用。

Our code is free for anyone worldwide to use.

密码朋克们将他们的技能投入到一系列致力于开发安全软件的项目中。PGP 使电子邮件用户能够使用 RSA 加密。Tor 使匿名网页浏览成为可能。该组织撰写了有关加密问题的白皮书。他们就加密技术的出口限制向美国政府提起诉讼。有时,他们甚至煽动公众抗议以支持他们的事业。密码朋克们也倡导加密货币的概念。

The cypherpunks devoted their skills to a series of projects that focused on developing secure software. PGP made RSA encryption possible for email users. Tor made anonymous web browsing possible. The group wrote white papers on encryption issues. They filed lawsuits against the U.S. government regarding export restrictions on encryption technology. At times, they even incited public disobedience in support of their causes. The cypherpunks also championed the concept of cryptocurrency.

在他们看来,加密货币相比传统货币有三个关键优势。首先,加密货币不受中央控制权威。比特币没有中央银行。货币由计算机网络管理。任何人都可以加入该网络。无需申请表。志愿者只需从互联网上下载并运行加密货币软件即可。网络上没有任何计算机比其他计算机更重要。它们都是平等的。其次,只要用户不将加密货币兑换 成传统货币,他们就是匿名的。隐私由公钥加密技术保障。任何人都可以成为用户。他们只需下载一个应用程序,将其交易报告给网络即可。第三,交易只需支付少量费用,且不征收销售税。此外,加密货币可以进行国际转账,无需支付任何交易费。

In their eyes, cryptocurrencies have three crucial advantages over conventional currencies. First, cryptocurrencies are not controlled by a centralauthority. There is no central bank in Bitcoin. The currency is managed by a network of computers. Anyone can join the network. There is no application form. Volunteers can simply download the cryptocurrency software from the internet and run it. No computer on the network is more important than another. They are all equal. Second, users are anonymous, provided they do not exchange cryptocurrencies for conventional money. Privacy is guaranteed by public-key cryptography. Anyone can be a user. They simply download an app that reports their transactions to the network. Third, there is a small fee to pay for a transaction and no sales tax. Furthermore, cryptocurrencies can be sent internationally without any exchange fees.

尽管密码朋克是加密货币的早期支持者,但没有人知道如何真正实现它。双重支付问题似乎根本无法解决。毕竟,钱只能花一次。

Although the cypherpunks were early proponents of cryptocurrencies, no one knew how to actually make it happen. There simply seemed to be no way around the Double-Spend Problem. After all, you can only spend money once.

传统的在线货币依赖于中央机构来批准交易(即用户之间的资金转移)。中央机构会维护所有交易的账本。账本是一百年前银行用纸笔记录的支付账簿的电子版本。通过查看账本,中央机构可以了解每个用户的账户余额。当用户请求交易时,中央机构可以轻松检查用户是否有足够的资金来支付该交易。如果足够,则该交易被视为有效并记录在账本中。如果不够,则交易被拒绝。

Conventional online currencies rely on a central authority to approve transactions (i.e., the transfer of money between users). The central authority keeps a ledger of all transactions. The ledger is the electronic form of the payment ledgers that banks kept with pen and paper a hundred years ago. By looking at a ledger, the central authority knows how much money each user has in their account. When a user requests a transaction, the central authority can easily check whether they have enough money to cover that transaction. If so, the transaction is accepted as valid and recorded in the ledger. If not, the transaction is rejected.

设计加密货币的问题在于中央权威的消失。理想情况下,分布式计算机网络会保存账本。网络上的每台计算机都有自己的账本副本。棘手的部分是如何同步这些账本副本(即保持所有副本的更新)。互联网上的通信延迟极其难以预测。计算机可以随时加入或退出网络。这些问题导致了双重支付问题。

The problem with designing a cryptocurrency is the disappearance of a central authority. Ideally, a distributed network of computers keeps the ledger. Each computer on the network has its own copy of the ledger. The tricky part is synchronizing those copies of the ledger (i.e. keeping them all up to date). Communication delays are extremely unpredictable on the Internet. Computers can join or leave the network at any time. These problems lead to the Double-Spend Problem.

假设Alice的账户里只有1.5个加密货币。她欠Bob和Charlie的钱。无奈之下,她通过网络发送了两笔交易。其中一笔,她向Bob发送了1.5个加密货币。另一种情况是,她向 Charlie 发送 1.5 个加密货币。如果她向网络的两个不同部分发送两笔交易,则有可能一台计算机同时接受向 Bob 的转账,而另一台计算机也接受向 Charlie 的转账。如果 Alice 运气好,她会同时向两方支付,从而造成资金双花

Suppose Alice has only 1.5 crypto coins in her account. She owes money to both Bob and Charlie. In desperation, she sends two transactions through the network. In one, she sends 1.5 crypto coins to Bob.In the other, she sends 1.5 crypto coins to Charlie. If she sends two transactions to two different parts of the network, there is a chance that one computer will accept the transfer to Bob at the same time that another computer accepts the transfer to Charlie. If Alice is lucky, she will pay both parties at the same time, double-spending her funds .

比特币

Bitcoin

2008年10月31日,中本聪在一份发送给密码朋克邮件列表的白皮书中,宣布了解决双重支付问题的解决方案。这份白皮书介绍了世界上第一个实用的加密货币——比特币。2009年1月,中本聪发布了比特币的源代码和最初的比特币区块(或者说 创世区块)。

Satoshi Nakamoto announced a solution to the Double-Spend Problem in a white paper sent to the Cypherpunk mailing list on October 31, 2008. The paper introduced Bitcoin, the world's first practical cryptocurrency. In January 2009, Nakamoto released Bitcoin's source code and the original—or genesis —Bitcoin block.

本质上,比特币只是存在于计算机网络中的字符串(数字和字母)。比特币的价值源于人们相信它有价值。用户期望将来能够用比特币兑换商品和服务。从这个角度来看,比特币与你钱包里的纸币本质上并无二致。纸币本身几乎没有内在价值。它的价值源于人们期望能够用它兑换有价值的东西。

In essence, bitcoins are just strings of characters (numbers and letters) that exist within a computer network. A bitcoin only has value because people believe it has value. Users expect to be able to exchange bitcoins for goods and services at a later time. In this respect, bitcoins are essentially no different from the banknotes in your wallet. The paper itself has little intrinsic value. Its value comes from the expectation that you will be able to exchange it for something that has value.

比特币的使用相当简单。用户可以通过应用程序买卖和兑换比特币。比特币可以用来从参与的商家那里购买实体商品。数字中介机构很乐意将比特币兑换成传统的国家控制货币。用户匿名性受到公钥加密技术的保护(参见第 7 章)。用户在使用比特币之前,会创建一个密钥对,其中包含公钥和私钥。私钥是保密的。公钥则作为用户在比特币上的身份证明。

Bitcoin is fairly simple to use. Users buy, sell, and exchange bitcoins through apps. Bitcoins can be used to purchase real goods from participating merchants. Digital intermediaries will happily exchange bitcoins for old-fashioned state-controlled currency. User anonymity is protected by public-key cryptography (see Chapter 7 ). Before a user uses Bitcoin, they create a key pair, with a public and private key. The private key is kept secret. The public key acts as the user’s proof of identity on Bitcoin.

当用户想要向其他用户发送比特币时,他们会创建一笔交易。该交易包含交易 ID、发送者 ID、接收者 ID、金额和输入交易 ID 号(见右上角的图片)。交易的输入是发送者之前收到的、即将发送的比特币的交易。输入交易必须已记录在账本中,且之前未曾被使用过。假设 Alice 想要向 Bob 发送 0.5 英镑。她引用了之前的两笔交易,其中 Jack 支付了 0.3 英镑,Jill 支付了 0.2 英镑。她通过将之前交易的 ID 号嵌入到新交易中来实现这一点。待支付金额和引用的总金额必须完全匹配。这可能意味着发送者需要将一些比特币作为找零返还给自己。

When a user wants to send bitcoins to another user, they create a transaction. The transaction consists of a transaction ID, a sender ID, a receiver ID, the amount, and the input transaction ID numbers (see the image on the top right). The inputs to the transaction are previous transactions in which the sender received the bitcoins that are now about to be sent. The input transactions must already be recorded in the ledger and must not have been spent previously. Suppose Alice wants to send ₿0.5 to Bob. She references two previous transactions in which she received ₿0.3 from Jack and ₿0.2 from Jill. She does this by embedding the ID numbers of those previous transactions into the new transaction. The amount to be spent and the total amount referenced must match exactly. This may mean that the sender has to send some bitcoins back to herself as change.

比特币交易

A BITCOIN TRANSACTION

必须参考以前总价值相同的进口交易。

must refer to previous import transactions with the same total value.

发送者的加密密钥用于验证交易(参见下一页的图片)。身份验证可确保发送者确实有意将比特币转账给接收者。它还能确保交易并非来自不受信任的第三方。为了启用身份验证,发送者会在交易中添加数字签名。数字签名相当于纸质支票上的手写签名。

The sender's encryption key is used to authenticate a transaction (see the image on the next page). Authentication ensures that the sender really intended to transfer the amount of bitcoins to the recipient. It also guarantees that the transaction did not originate from an untrusted third party. To enable authentication, the sender adds a digital signature to the transaction. A digital signature is equivalent to a handwritten signature on a paper check.

数字签名是通过使用发送者的私钥加密交易摘要而创建的。通常,公钥用于加密,私钥用于解密。创建签名则需要相反的过程。私钥加密,公钥解密。这意味着任何人都可以验证签名,但只有发送者可以创建签名。

The digital signature is created by encrypting a summary of the transaction with the sender's private key. Typically, a public key is used for encryption and a private key for decryption. To create a signature, the process is reversed. The private key encrypts and the public key decrypts. This means that anyone can verify the signature, but only the sender can create it.

当比特币网络上的计算机收到交易时,它首先会检查签名是否有效。它会使用发送者的公钥解密签名,从而得出交易的摘要。接收者也会创建交易摘要,然后比较两个版本——解密版本和计算版本。如果两者匹配,则交易必定真实。只有真正的发送者才能创建数字签名,因为只有他们拥有私钥。如果两个版本不匹配,则交易被视为无效,并被拒绝。

When a computer on the Bitcoin network receives the transaction, it first checks whether the signature is valid. It does this by decrypting the signature with the sender’s public key. This gives the summary of the transaction. The receiver also creates a summary of the transaction and then compares the two versions – the decrypted and the calculated. If they match, the transaction must be authentic. Only the real sender could have created the digital signature because only they have the private key. If the two versions do not match, the transaction is rejected as invalid.

创建和验证

CREATION AND VERIFICATION

数字签名。

of a digital signature.

数字签名确保交易在传输过程中不会被篡改。任何对消息的更改都会改变摘要。结果就是计算出的摘要与解密后的版本不匹配。

The digital signature ensures that the transaction cannot be tampered with in transit. Any change to the message changes the digest. The result is that the computed digest will not match the decrypted version.

交易摘要是使用哈希算法计算的。哈希算法会将大量文本压缩成较短的字符串。在此过程中,信息会丢失,但输出字符串高度依赖于输入。换句话说,原始文本的微小变化会导致输出发生巨大的随机变化。摘要通常被称为消息的哈希值。比特币中使用的哈希函数本质上是一种复杂的校验和算法(参见 第 7 章)。

The transaction digest is calculated using a hash algorithm. A hash algorithm takes a large amount of text and compresses it into a shorter string of characters. Information is lost in the process, but the output string is highly dependent on the input. In other words, a small change in the original text results in a large random change in the output. The digest is often called the hash of the message. The hash function used in Bitcoin is essentially a sophisticated checksum algorithm (see Chapter 7 ).

身份验证后,新的交易将被确认。接收方计算机将检查现金簿中是否存在该笔交易,以及相应的金额是否之前未被使用过。

After authentication, the new transaction is validated . The receiving computers check whether the entry transactions exist in the cash book and whether the corresponding amounts have not been spent previously.

区块链

Blockchain

接下来,交易得到确认记录。网络计算机将新交易包含在一个更大的未确认交易区块中。区块只是一组未确认交易及其相关数据。网络计算机竞相尽快将他们的区块添加到他们的分类账中。竞赛的获胜者将他们的区块构建成一个区块链。这个区块链—— 区块链 ——就是分类账。它将每个已确认的比特币区块链接到一条完整的链上,这条链一直延伸到中本聪的创世区块。链的链接是通过在下一个区块中包含前一个区块的 ID 号形成的。链严格定义了交易应用于分类账的顺序。假定单个区块中的交易同时发生。假定任何较早区块中的交易发生在较早的时间。竞赛的获胜者与整个网络共享他们的区块,以便所有分类账都是最新的。

Next, the transaction is confirmed and recorded . The network computers include the new transaction in a larger block of unconfirmed transactions. A block is simply a group of unconfirmed transactions and their associated data. The network computers compete to add their blocks to their ledger as quickly as possible. The winner of the race builds their block into a chain of blocks. That chain of blocks – the blockchain – is the ledger. It links each confirmed Bitcoin block to an unbroken chain that stretches all the way back to Nakamoto’s Genesis block. The links of the chain are formed by including the ID number of the previous block in the next block. The chain strictly defines the order in which transactions are applied to the ledger. The transactions in a single block are assumed to have happened at the same time. Transactions in any earlier block are assumed to have happened at an earlier time. The winner of the race shares their block with the entire network so that all ledgers are up to date.

竞赛确保每次只有一台计算机可以向链中添加区块。赢得竞赛取决于运气。在大多数情况下,第一名和第二名计算机之间存在显著的延迟。这种延迟为网络提供了调整区块链所需的时间,使获胜者能够传播。第一名和第二名之间并驾齐驱的竞争不太可能发生,但确实可能发生。考虑到这一点,要求在区块链上添加六个区块后,一个区块才被视为已确认。连续六次并驾齐驱的竞争实际上是不可能的。

The race ensures that only one computer can add a block to a chain at a time. Winning the race is a matter of luck. In most cases, there is a significant delay between the first and second placed computer. This delay provides the time needed for the network to adjust the blockchain from the winnerto spread. A neck-and-neck race between first and second is unlikely, but it can happen. This is taken into account by requiring that six blocks be added to a chain before a block is considered confirmed. Six consecutive neck-and-neck races are practically impossible.

为了赢得竞争,计算机必须创建一个有效的区块。具体方法是生成一个随机数,并将其附加到一组候选交易上。然后,对该区块应用哈希算法。如果哈希值小于预设阈值,则该区块被视为有效。如果哈希值等于或大于阈值,则候选区块被视为无效。网络中的计算机会尝试不同的随机数,直到创建一个有效的区块。第一个创建有效区块的计算机将赢得竞争,并与网络的其他计算机共享该区块。其他计算机则通过将区块添加到自己的账本副本中来记录交易。之后,所有计算机都会继续尝试创建一个新的有效区块,其中包含尚未提交到账本的交易。

To win the race, a computer must create a valid block. This is done by generating a random number and attaching it to a candidate group of transactions. A hash algorithm is then applied to the block. If the hash is less than a preset threshold, the block is considered valid. If the hash is equal to or greater than the threshold, the candidate block is considered invalid. The network computers try different random numbers until a valid block is created. The first computer to create a valid block wins the race and shares the block with the rest of the network. The other machines record the transactions by adding the block to their own copy of the ledger. All machines then resume their attempts to create a new valid block with transactions that have not yet been committed to the ledger.

创建有效区块需要尝试大量随机数。我们无法提前预测哪个数字会通过哈希阈值测试。简单的反复试验是找到合适数字的唯一方法。由于生成有效区块完全取决于运气,任何计算机都可能成为下一个赢家。因此,没有单一的权威机构负责将区块添加到链中。这项工作分布在整个对等计算机网络中(更多详情请参阅附录)。

Creating a valid block involves trying out large numbers of random numbers. It is impossible to predict in advance which number will pass the hash threshold test. Simple trial and error is the only way to find a suitable number. Since producing a valid block is a matter of luck, any computer could be the next winner. Therefore, there is no single authority for adding blocks to the chain. The work is distributed across the entire network of peer computers (see the Appendix for further details).

这解释了比特币在用户之间是如何交易的。但它们最初是如何形成的呢?

This explains how bitcoins are exchanged between users. But how are they formed in the first place?

每当网络计算机生成一个有效区块,其所有者都会获得比特币奖励。验证区块以获取比特币的过程称为挖矿 。中本聪验证创世区块获得了 50 个比特币。同样,网络计算机的所有者也会因维护账本而获得奖励。

Every time a network computer forms a valid block, its owner is rewarded with bitcoins. The process of validating blocks in exchange for bitcoins is called mining . Validating the genesis block earned Nakamoto 50 bitcoins. In the same way, owners of network computers are rewarded for keeping the ledger.

比特币的早期使用者是网络黑市的买家和卖家。比特币在暗网上的出现是由非法毒品交易推动的。最初,比特币的主要吸引力在于匿名性。随着时间的推移,一些合法机构接受比特币支付。2012年,Coinbase作为一家数字货币经纪商成立。2014年,微软开始接受比特币作为Xbox游戏在线购买的支付方式。比特币作为“硬”货币的价格一直像过山车一样起伏不定。2011年,1比特币(1₿)价值30美分。2017年12月18日,它的价格达到了惊人的19,498.63美元的历史高点。

The early adopters of Bitcoin were buyers and sellers on the online black market. The emergence of Bitcoin on the Darknet was driven by illegal drug purchases. Initially, the main attraction was anonymity. Over time,Legal organizations accept bitcoin payments. In 2012, Coinbase was founded as a digital currency broker. In 2014, Microsoft began accepting bitcoin as payment for online purchases of Xbox games. The price of a bitcoin in “hard” currency has been a rollercoaster. In 2011, a single bitcoin (₿1) was worth 30 US cents. On December 18, 2017, it peaked at a staggering all-time high of $19,498.63.

乍一看,挖矿比特币似乎是一种无中生有的赚钱方式。只需安装比特币软件,下载账本,然后开始挖矿即可。然而,电脑和电力的成本是真实存在的。据估计,全球比特币挖矿的年收入超过 80 亿美元,成本超过 30 亿美元(2019 年)。挖矿奖励每四年减半一次。最终,流通中的比特币数量将达到约 2100 万枚。

At first glance, mining bitcoins seems like a way to make money from nothing. All it takes is installing the Bitcoin software, downloading the ledger, and starting to mine. However, the cost of the computer and electricity consumption is real. It is estimated that the annual global revenue from Bitcoin mining is over $8 billion, with over $3 billion in costs (2019). The mining reward halves every four years. Eventually, there will be approximately 21 million bitcoins in circulation.

比特币的成功催生了许多其他加密货币,其中最著名的是以太坊(2015 年)和 Facebook 的 Libra(2019 年)。然而,企业也在大力投资支撑比特币的区块链技术。区块链提供了一个安全的分布式账本,独立于加密货币本身。区块链可以追踪并强制执行任何形式交易的排序。其应用范围包括验证法律合同、维护在线身份、记录病史、提供媒体控制以及追踪供应链。区块链可能会重塑各行各业的运营模式,并最终证明其远比比特币本身更有用。

Bitcoin’s success has spawned a number of other cryptocurrencies, most notably Ethereum (2015) and Facebook’s Libra (2019). However, companies are also investing heavily in the blockchain technology that underpins Bitcoin. Blockchain provides a secure ledger of distribution, independent of the cryptocurrency aspect. A blockchain can track and enforce the sequencing of any form of transaction. Possibilities include validating legal contracts, maintaining online identities, recording medical histories, providing media control, and tracking supply chains. Blockchain is likely to reshape operating models across a wide range of industries and may, ultimately, prove far more useful than Bitcoin itself.

中本聪是谁?

Who is Nakamoto?

比特币真正令人瞩目的地方在于,无人知晓其发明者中本聪 (Satoshi Nakamoto) 究竟是谁。他第一次被提及是在比特币白皮书发布之时。之后几年,中本聪一直活跃在密码朋克邮件列表中,直到 2010 年他将比特币源代码的控制权移交给加文·安德烈森 (Gavin Andresen)。对此,中本聪在 4 月份回应道:

The truly remarkable thing about Bitcoin is that no one knows who Satoshi Nakamoto, the inventor of Bitcoin, is. The first time he was mentioned was when the original Bitcoin white paper was released. Nakamoto remained active on the cypherpunk mailing list for a few more years, until he handed over control of Bitcoin’s source code to Gavin Andresen in 2010. In response, Nakamoto stated in April:

我开始忙于其他事情。

I started to busy myself with other things.

在 Gavin 和大家的精心照料下,一切顺利。

It's in good hands with Gavin and everyone.

除了少数信息(其中大部分现在被认为是伪造的)外,这是人们最后一次听到中本聪的消息。

Apart from a handful of messages – most of which are now considered forgeries – that was the last anyone ever heard from Nakamoto.

当然,关于中本聪的身份有很多猜测。线索寥寥无几。中本聪显然是世界级的密码学家(或密码学家团体)。比特币的源代码完美无缺。所以中本聪一定是一位编程专家。中本聪的书面英语非常完美。所以英语可能是他的母语。仔细研究他的帖子,可以发现他有英国或澳大利亚口音。创世区块包含伦敦日报《泰晤士报》的头条新闻。也许中本聪来自英国。对时间戳的分析表明,中本聪通常在格林威治标准时间下午 3:00 到凌晨 3:00 之间在公告板上发帖。如果这个习惯是由于晚上小睡所致,那么这意味着中本聪可能住在美国东海岸。没有证据表明中本聪的性别。

Of course, there has been much speculation about Nakamoto's identity. The clues are few and far between. Nakamoto is clearly a world-class cryptographer (or group of cryptographers). The source code for Bitcoin is flawless. So Nakamoto must be a programming expert. Nakamoto's written English is perfect. So it is possible that English is his native language. Closer examination of his posts suggests that he has a British or Australian accent. The genesis block contains a newspaper headline from the London daily The Times. Perhaps Nakamoto is from England. Analysis of the time stamps shows that Nakamoto usually posted messages on bulletin boards between 3:00 PM and 3:00 AM, Greenwich Mean Time. If this habit is due to taking a nightly nap, then it means that Nakamoto probably lived on the East Coast of the United States. There is no evidence of Nakamoto's gender.

网上流传着一系列嫌疑人名单。一些最杰出的密码朋克的名字曾多次出现在名单上。有些人甚至自称是中本聪。然而,迄今为止,没有人能够证明他们就是中本聪。要证明这一点,只需要解密一条用中本聪公钥发送的消息。能够做到这一点的人必须拥有中本聪的私钥。

Lists of suspects have circulated online. The names of the most prominent cypherpunks have appeared on them at one time or another. Some individuals have even claimed to be Nakamoto. To date, however, no one has been able to prove that they are Nakamoto. All that is needed to prove this is to decrypt a message sent with Nakamoto's public key. The person, or persons, who can do this must have Nakamoto's private key.

中本聪的110万枚比特币目前仍未动用。截至本文撰写时(2019年),这110万枚比特币的价值超过110亿美元。照此计算,中本聪是全球150位最富有的人之一。为什么他/她/他们不愿出面认领这笔应得的财富?这种不愿仅仅是出于对密码朋克荣誉准则的严格遵守?还是另有隐情?

Nakamoto’s 1.1 million bitcoins remain untouched for now. At the time of writing (2019), those 1.1 million bitcoins are worth over 11 billion US dollars. By that count, Nakamoto is one of the 150 richest people in the world. Why doesn’t he, she or they come forward to claim that rightful wealth? Is this reluctance simply a matter of strict adherence to the cypherpunk code of honor? Or is something darker going on?

中本聪 (Satoshi Nakamoto) 仍然是一个谜。

Satoshi Nakamoto remains an enigma.

量子计算机

Quantum computers

比特币高度依赖 RSA 公钥加密技术来提供用户匿名性和交易身份验证。反过来,RSA 算法的安全性依赖于以下假设:目前还没有快速算法可以将大数因式分解成质数(参见第7章)。换句话说,没有快速的方法可以确定哪两个质数相乘可以得出给定的大数。显然,21的质因数分别是3和7,但这种快速确定只是因为21很小。在超级计算机上,将大数因式分解成质数可能需要数十年的时间。

Bitcoin relies heavily on RSA public-key cryptography to provide user anonymity and transaction authentication. In turn, the security of the RSA algorithm relies on the assumption that there isno fast algorithm exists that can factor large numbers into primes (see Chapter 7 ). In other words, there is no fast way to determine which two primes multiply together to give a given large number. It is clear that the prime factors of 21 are 3 and 7, respectively, but that determination is fast only because 21 is small. Factoring a large number into primes can take decades on a supercomputer.

比特币,乃至整个互联网安全体系,都依赖于一个假设:质因数分解速度慢。如果发明了一种快速分解质数的算法,比特币以及互联网上几乎所有的秘密信息都会突然变得容易受到攻击。1994年,这种算法的阴影就曾笼罩在人们的头上。唯一的可取之处在于,这种神奇的算法需要一种新型的计算机。这种设备被称为量子计算机。

Bitcoin, and the entire edifice of Internet security, depends on the single assumption of slow prime factorization. If a fast algorithm for factoring a number into primes were invented, Bitcoin and virtually every secret message on the Internet would suddenly become vulnerable to attack. In 1994, the specter of just such an algorithm loomed. The only saving grace was that the miracle algorithm required a new type of computer. A device called a quantum computer .

1981年,理查德·费曼在麻省理工学院的一次会议上发表了主题演讲。当时费曼63岁,被广泛认为是有史以来最伟大的物理学家之一。二战期间,他在洛斯阿拉莫斯参与了曼哈顿计划。在康奈尔大学,他在量子电动力学方面取得了巨大进步。在加州理工学院,费曼提出了超流体和量子引力的新概念。他是1965年诺贝尔物理学奖的获得者之一。

In 1981, Richard Feynman gave a keynote lecture at a conference at MIT. Feynman was 63 years old and was widely regarded as one of the greatest physicists ever. During World War II, he worked on the Manhattan Project in Los Alamos. At Cornell University, he made giant strides in quantum electrodynamics. And at Caltech, Feynman introduced new concepts in superfluidity and quantum gravity. He was one of the recipients of the Nobel Prize in Physics in 1965.

费曼在麻省理工学院的演讲题为《用计算机模拟物理》。在演讲中,他认为传统计算机永远无法精确模拟亚原子粒子的行为。他提出,我们需要一种新型的计算机,一种能够利用量子效应来模拟物理系统的计算机。他的想法是,亚原子粒子的奇特行为可以用来以极高的速度进行计算。费曼将他的理论机器称为量子计算机。

Feynman's lecture at MIT was entitled Simulating Physics with Computers . In it, he argued that conventional computers would never be up to the task of accurately simulating the behavior of subatomic particles. He proposed that a new kind of computer was needed. One that would use quantum effects to simulate physical systems. His idea was that the strange behavior of subatomic particles could be used to perform calculations at incredibly high speeds. Feynman called his theoretical machine a quantum computer.

十多年来,费曼的想法一直只是一种智力上的好奇——数学家和物理学家们只是玩玩玩,却无人认真对待。事实上,建造这样一台机器将是一项极其复杂的工作。而且,它似乎没有任何用处。传统的电子计算机足以完成大多数任务。

For more than a decade, Feynman’s idea was an intellectual curiosity—something that mathematicians and physicists toyed with, but that no one took seriously. In fact, building such a machine would be an extraordinarily complicated exercise. Moreover, it didn’t seem to serve any purpose. Conventional electronic computers were good enough for most tasks.

1994年,麻省理工学院应用数学教授彼得·肖尔(Peter Shor)改变了人们对量子计算的普遍看法。他公布了一种算法,可以在量子计算机上快速将数字分解为质数。如果能够建造这样的计算机,肖尔的算法将比以往任何方法都快几个数量级。

Then in 1994, Peter Shor, a professor of applied mathematics at MIT, changed the prevailing ideas about quantum computing. He unveiled an algorithm that could perform rapid factorization of a number into primes on a quantum computer. If such a computer could be built. Shor's algorithm would be orders of magnitude faster than any previous method.

传统计算机通过微观导线上的电压电平来表示信息。当导线上的电压电平为高时,该导线代表“1”。相反,电压电平为低时,代表“0”。这种两电平系统被称为二进制,因为每根导线只能具有两个值之一——0 或 1(参见第 7 章)。至关重要的是,在任何给定时间,每根导线上的电压电平都只有一个值,代表一个二进制数字,即“位”。因此,计算必须逐个进行。

Conventional computers represent information by means of voltage levels on microscopic wires. When the voltage level on a wire is high, the wire represents a one. In contrast, a low voltage level represents a value of zero. This two-level system is called binary because each wire can have only one of two values ​​– 0 or 1 (see Chapter 7 ). Crucially, at any given time, the voltage level on each wire has a single value, representing a single binary digit, a bit. Therefore, calculations must be performed one after the other.

另一方面,量子计算机用亚原子或量子粒子的属性来表示信息。这些粒子的各种物理属性都可以被利用。电子的自旋就是其中一种选择。自旋向上表示1,自旋向下表示0。使用亚原子粒子的一大优势在于,在量子世界中,粒子可以同时处于多种状态。这种奇特的行为被 叠加原理所捕捉。叠加效应是由物理学家在20世纪初揭示的。一个电子可以同时在所有可能的方向上自旋。如果用这种效应来表示数据,就意味着一个电子可以同时表示0和1。这种现象催生了量子计算机中信息的基本单位——量子比特(qubit)。

Quantum computers, on the other hand, represent information with properties of subatomic or quantum particles. Various physical properties of these particles can be used. One option is the spin of an electron. A spin up represents a 1, a spin down a 0. The great advantage of using subatomic particles is that in the quantum world, particles can be in multiple states at the same time. This strange behavior is captured in the principle of superposition. The effect was revealed by physicists in the early twentieth century. An electron can have a spin in all possible orientations at the same time. If you use this effect to represent data, it means that an electron can represent 0 and 1 at the same time. This phenomenon led to the basic unit of information in the quantum computer – the quantum bit, or qubit.

随着量子比特的增加,量子计算机的计算能力呈指数级增长。单个量子比特可以同时表示两个值——0 和 1。两个量子比特可以同时表示四个值——00、01、10 和 11。一个拥有 10 个量子比特的系统可以同时捕获从 0 到 1023 的所有十进制值。当量子计算机执行操作时,它会同时应用于所有状态。例如,在一个 10 量子比特的系统中加 1 会同时执行 1024 次加法。在传统计算机上,这 1024 次加法必须一次完成。这种效应产生量子计算机提供了计算速度呈指数级提升的可能性。

The computing power of quantum computers increases exponentially as qubits are added. A single qubit can simultaneously represent two values ​​– 0 and 1. Two qubits allow four values ​​– 00, 01, 10, and 11 – to be represented simultaneously. A system with ten qubits can capture all the decimal values ​​from 0 to 1023 simultaneously. When a quantum computer performs an operation, it is applied to all the states simultaneously. For example, adding one to a ten-qubit system would perform 1024 additions simultaneously. On a conventional computer, those 1024 additions would have to be performed one after the other. This effect producesquantum computers offer the possibility of exponential speed-up of calculations.

但还有一个问题。测量量子比特的值会使其状态崩溃。也就是说,一旦测量到量子比特的物理状态,它就会稳定为一个值。因此,虽然一个十量子比特系统可以同时执行 1024 次加法,但它只能读出一个结果。更糟糕的是,读出的输出是从 1024 种可能性中随机选择的。加 1 后的崩溃结果可能是从 1 到 1024 之间的任何值。这种任意选择输出的方式显然是不可取的。通常,我们希望输入一些数据并得到某个结果。解决这个问题的方法是一种称为干扰的效应。有时可以强制不想要的状态相互破坏性干扰。这样,就可以消除不想要的结果,留下单一的、想要的结果。

There's a catch, though. Measuring the value of a qubit collapses its state . That is, the qubit settles to a single value as soon as its physical state is measured. So, while a ten-qubit system can perform 1024 additions simultaneously, it can only read out a single result. Worse, the output read out is chosen at random from the 1024 possibilities. That collapsed result of the addition by 1 could have any value from 1 to 1024. This arbitrary choice of output is clearly undesirable. Typically, we want to input some data and get a certain result. The solution to this problem is an effect called interference . It is sometimes possible to force unwanted states to destructively interfere with each other. In this way, the unwanted results can be removed, leaving behind the single, desired outcome.

量子计算机非常适合解决需要评估多种方案并得出单一结果的难题。组合优化问题很好地满足了这一要求(参见 第六章)。例如,旅行商问题需要分析所有可能的城市路线长度,并仅给出最短的路线。这完全符合量子计算机的架构,前提是较差的解可以通过干扰消除。对于组合优化问题,量子计算机的性能有望远远超过世界上最快的超级计算机。一台运行良好的超级计算机将彻底改变我们处理药物研发、材料设计和晶格构造等问题的方式。它还将破解质因数分解问题。

Quantum computers are ideally suited for puzzles that require evaluating many alternatives and producing a single result. Combinatorial optimization problems meet this requirement quite nicely (see Chapter 6 ). The traveling salesman problem, for example, requires analyzing the lengths of all possible city tours and giving only the shortest one. This fits the architecture of a quantum computer perfectly, provided that the poorer solutions can be eliminated by interference. For combinatorial optimization problems, quantum computers promise performance that far exceeds the world's fastest supercomputers. A working supercomputer would revolutionize the way we tackle problems such as drug discovery, materials design, and lattice construction. It would also crack the prime factorization problem.

Shor 的素因数算法在传统计算机上运行速度较慢,但​​非常适合量子计算机。该算法首先猜测一个素数。当然,这个猜测几乎肯定是错误的。Shor 的算法不是再次猜测,而是寻找对猜测结果的改进。他通过反复将猜测的数字乘以自身来实现这一点。每次,他都会将原始的大数除以乘法的结果,并存储余数。经过多次重复,残差值序列具有一定的规律——该序列以固定的周期重复出现(参见第七章中的模运算或时钟运算)。Shor 算法通过傅里叶变换确定该周期(参见第二章)。傅里叶变换输出的峰值表示该序列的周期。所需素数的倍数可以通过将原始猜测值的周期幂除以 2,再减 1 来计算。

Shor's algorithm for finding prime factors is slow on a conventional computer, but is well suited for a quantum computer. The algorithm starts by guessing one of the prime numbers. Of course, that guess is almost certainly incorrect. Instead of guessing again, Shor's algorithm looks for an improvement on the guess. He does this by multiplying the guessed number by itself over and over again. Each time, he then divides the original large number by the result of the multiplication and stores the remainder. After a large number of repetitions,the series of residual values ​​has a pattern – the series repeats with a fixed period (see modular arithmetic or clock arithmetic in Chapter 7 ). Shor's algorithm determines that period by means of the Fourier transform (see Chapter 2 ). The peak of the Fourier transform output indicates the period of the series. A multiple of the desired prime number can be calculated as the original guess raised to the power of the period divided by two, and that reduced by one.

此时,算法得到了原始大数和其中一个素因数的倍数。这两个数都是所需素数的倍数。寻找两个数的最大公约数是一个相当简单的操作。可以应用欧几里得算法(参见第 1 章)。欧几里得算法反复用较大的数减去较小的数,直到剩下两个相等的数。当发生这种情况时,它们等于最大公约数。在 Shor 算法中,该最大公约数是素因数之一。另一个素因数可以通过将原始大数除以该素数来找到。

At this point, the algorithm has the original large number and a multiple of one of the prime factors. Those two numbers are both multiples of the desired prime number. Finding the greatest common divisor of two numbers is a fairly simple operation. Euclid's algorithm can be applied (see Chapter 1 ). Euclid's algorithm repeatedly subtracts the smaller number from the larger until two numbers are left that are equal to each other. When that happens, they are equal to the greatest common divisor. In Shor's algorithm, that greatest common divisor is one of the prime factors. The other prime factor can be found simply by dividing the original large number by that prime number.

该程序并非总是有效。成功取决于初始猜测。如果程序失败,则从不同的猜测开始重复上述步骤。在 99% 的情况下,Shor 算法可以在 10 次或更少的迭代内生成素因数(更多详情请参阅附录)。

The procedure does not always work. Success depends on the initial guess. If the routine fails, the steps are repeated starting with a different guess. In 99 percent of the cases, Shor's algorithm produces the prime factors in ten or fewer iterations (see the Appendix for more details).

在传统计算机上,反复将猜测值乘以自身非常慢。循环必须运行多次才能识别出模式。在量子计算机上,由于叠加,这些乘法可以同时进行。然后可以使用量子傅里叶变换去除除最强模式之外的所有重复模式。这给出了余数序列的周期,然后可以将其折叠并测量。欧几里得算法可以在传统计算机上执行。叠加和干涉使得量子计算机能够以惊人的速度执行秀尔算法。

On a conventional computer, the repeated multiplication of the guess by itself is extremely slow. The loop must be run through many times before a pattern is recognizable. On a quantum computer, these multiplications can be performed simultaneously thanks to superposition. A quantum Fourier transform can then be used to remove all repeating patterns except the strongest one. This gives the period of the remainder series, which can then be collapsed and measured. Euclid's algorithm can then be executed on a conventional computer. Superposition and interference allow the quantum computer to execute Shor's algorithm surprisingly quickly.

谷歌、IBM、微软和一些初创公司的团队正在追逐量子计算的梦想。他们的设备看起来更像是大型物理实验,而非超级计算机。构建量子计算机需要设计和亚原子级量子逻辑门的制造。测量和控制状态亚原子粒子的测量需要极其精密的设备。为了进行可靠的测量,量子比特必须冷却到接近绝对零度(-273°C)。

Teams at Google, IBM, Microsoft and a handful of startups are now pursuing the quantum computing dream. Their devices look more like grand physics experiments than supercomputers. Building a quantum computer requires the design and subatomic fabrication of quantum logic gates. Measuring and controlling the stateof the subatomic particles requires incredibly precise equipment. To perform reliable measurements, the qubits must be cooled to almost absolute zero (–273°C).

到目前为止,已经演示了高达 72 个量子比特的计算能力。理论上,72 个量子比特可以提供巨大的计算能力。然而,在实践中,量子噪声会对性能产生负面影响。亚原子粒子状态的微小波动都可能导致计算错误。团队通过保留部分量子比特用于纠错来解决这个问题(参见第 7 章)。缺点是可用于计算的量子比特会减少。乍一看,解决方案似乎很简单——只需添加更多量子比特即可。但这引发了担忧。如果更多的量子比特意味着更多的噪声和错误怎么办?如果没有任何剩余的量子比特可用于计算怎么办?

So far, computing with up to 72 qubits has been demonstrated. In theory, 72 qubits provide enormous computing power. In practice, however, quantum noise has a negative impact on performance. Tiny fluctuations in the state of the subatomic particles can lead to computational errors. Teams counteract this by reserving some of the qubits for error correction (see Chapter 7 ). The downside is that fewer qubits are available for computing. At first glance, the solution seems simple – just add more qubits. But this raises concerns. What if more qubits means there is just more noise and errors? What if there are none left for computing?

2019年10月,谷歌的一个团队宣布他们的量子计算机已经实现了量子霸权。该团队表示,他们的计算机完成了一项传统计算机无法完成的计算。程序验证了量子随机数生成器的输出是真正随机的。他们的Sycamore量子计算机芯片使用53个量子比特在200秒内完成了这项任务。该团队估计,同样的计算在超级计算机上需要超过10000年。IBM不同意这种说法。他们计算出这项任务可以在超级计算机上两天半内完成。这显然不是量子霸权,但4分钟和3600分钟之间的差距仍然巨大。

In October 2019, a group from Google claimed that their quantum computer had achieved quantum supremacy. The team stated that the computer had performed a calculation that would have been impossible to perform on a conventional computer. The program verified that the output of the quantum random number generator was truly random. Their Sycamore quantum computer chip completed the task in 200 seconds using 53 qubits. The group estimated that the same calculation would take over 10,000 years on a supercomputer. IBM disagreed. They calculated that the task could be performed on a supercomputer in two and a half days. Not quantum supremacy, apparently, but still, the difference between 4 and 3,600 minutes is huge.

尽管仍有许多重大挑战,但量子计算机设计者似乎已经走上了一条重要的道路。

Many big challenges remain. However, it seems that quantum computer designers are on an important track.

还不是结束

Not the end

自从算法在古代美索不达米亚被刻写在泥板上以来,它已经取得了长足的进步。第一台计算机的出现彻底改变了算法的重要性和威力。自集成电路发明以来,算法的能力呈指数级增长。量子计算机或许能进一步加速算法的发展。未来几年的情况很难预测,但人工智能似乎即将彻底改变我们世界的运作方式。

Algorithms have come a long way since they were first scratched into clay tablets in ancient Mesopotamia. The first computers transformed their importance and power. Since the invention of the integrated circuit, the power of algorithms has grown exponentially. Further acceleration may come from quantum computers. It’s hard to predict more than a few years ahead, but it seems that artificial intelligence is poised to revolutionize the way our world works.

由于缺乏翻译人员,数千块来自古代美索不达米亚的泥板被搁置在世界各地的博物馆中,无人阅读。如今,最新的人工智能算法正被用于自主翻译6.7万块来自美索不达米亚南部、可追溯至公元前21世纪的行政泥板。这或许是所有循环中最漫长的一个,最新的算法即将解读最古老的算法。

Due to a lack of translators, thousands of clay tablets from ancient Mesopotamia lie unread in museums around the world. Today, the latest AI algorithms are being deployed to autonomously translate 67,000 administrative tablets from southern Mesopotamia dating to the 21st century BC. In perhaps the longest of all circles, the newest algorithms are about to interpret the oldest.

附录

Appendix

PageRank算法

PageRank Algorithm

以耦合数表作为输入。

Take the table with coupling numbers as input.

将 PageRank 计算为页面上的传入链接数除以传入链接的平均数。

Calculate PageRanks as the number of incoming links on a page divided by the average number of incoming links.

重复以下步骤:

Repeat the following:

对每一列重复以下步骤:

Repeat the following for each column:

将运行总和设置为零。

Set the running sum to zero.

对列中的每个单元格重复以下步骤:

Repeat the following for each cell in the column:

查找该行的当前 PageRank。

Find the current PageRank of the row.

乘以行和列之间的链接数。

Multiply by the number of links between the row and the column.

除以该行的传出链接总数。

Divide by the total number of outgoing links for the row.

乘以阻尼系数。

Multiply by the damping factor.

添加到运行总数。

Add to the running sum.

当列中的所有单元格都已处理完毕后停止迭代。

Stop iterating when all cells in the column have been processed.

将阻尼系数添加到运行总和中。

Add the damping factor to the running sum.

将此值保存为该列的新 PageRank。

Save this value as the new PageRank for the column.

当所有列都已处理完毕后停止迭代。

Stop iterating when all columns have been processed.

当 PageRank 的变化非常小时停止迭代。

Stop iterating when the change in PageRanks is very small.

提供 PageRank。

Provide the PageRanks.

人工神经网络的训练

Training of artificial neural network

将训练数据文件和网络拓扑作为输入。

Take the training data file and the network topology as input.

用任意参数填充拓扑。

Fill the topology with arbitrary parameters.

重复以下步骤:

Repeat the following:

对每个训练示例重复:

Repeat for each training example:

向网络提供输入。

Provide the input to the network.

采用正向计算的方式计算网络输出。

Calculate the network output using forward calculation.

计算实际输出和期望输出之间的误差。

Calculate the error between the actual and desired outputs.

对网络中的每一层重复上述操作:

Repeat for each layer going back through the network:

对网络中的每个神经元重复:

Repeat for each neuron in the network:

对神经元中的每个权重和偏差重复:

Repeat for each weight and bias in the neuron:

确定参数和误差之间的关系。

Determine the relationship between the parameter and the error.

计算参数的校正值。

Calculate a correction value for the parameter.

将校正值乘以训练速度。

Multiply the correction by the training speed.

从参数中减去该值。

Subtract that value from the parameter.

一旦神经元调整完毕就停止重复。

Stop repeating once the neuron has adjusted.

一旦图层调整完毕,就停止重复。

Stop repeating once the layer has been adjusted.

网络调整完成后停止重复。

Stop repeating once the network has been adjusted.

当训练数据文件完全处理后停止重复。

Stop repeating when the training data file has been fully processed.

当错误不再减少时停止重复。

Stop repeating when there is no further error reduction.

冻结参数。

Freeze the parameters.

训练已完成。

Training is complete.

比特币算法

Bitcoin Algorithm

比特币发送者:

The bitcoin sender:

通过记录发送者的公钥、接收者的公钥来形成交易,

Forms a transaction by recording the sender's public key, the receiver's public key,

交易输入的金额和 ID 号。

the amount and ID numbers of the inputs to the transaction.

将数字签名附加到交易中。

Attaches a digital signature to the transaction.

将签名的交易发送到比特币网络。

Sends the signed transaction to the Bitcoin network.

比特币网络上的计算机:

The computers on the Bitcoin network:

检查签名是否真实。

Check that the signature is authentic.

检查交易条目是否尚未发出。

Check that the transaction entries have not yet been issued.

将交易包含在候选区块中。

Include the transaction in a candidate block.

将候选人与链条联系起来。

Link the candidate to the chain.

重复以下步骤:

Repeat the following steps:

创建一个随机数并将其添加到块中。

Create a random number and add it to the block.

计算区块的哈希值。

Calculate the hash of the block.

如果哈希值小于阈值,则停止迭代;如果另一台计算机赢得比赛,则停止搜索。

Stop iterating if the hash is smaller than the threshold, or stop the hunt if another computer wins the race.

将有效区块发送到网络。

Send the valid block to the network.

比特币接收者:

The bitcoin recipient:

一旦将交易与另外五个区块一起添加到链中,就会接受该交易。

Accepts the transaction once it is added to the chain with five more blocks.

Shor算法

Shor's Algorithm

以一个大数字作为输入。

Take a large number as input.

重复以下步骤:

Repeat the following steps:

取一个素数作为猜测。

Take a prime number as a guess.

将猜测存储在记忆中。

Store the guess in memory.

创建一个空白列表。

Create a blank list.

重复以下步骤:

Repeat the following steps:

将内存中的值乘以猜测值。

Multiply the value in memory by the guess.

刷新内存中的值。

Refresh the value in memory.

计算输入除以内存中的值后的余数。

Calculate the remainder after dividing the input by the value in memory.

将其余部分添加到列表中。

Add the rest to the list.

重复大量次数后停止重复。

Stop repeating after a large number of repetitions.

对余数列表应用傅里叶变换。

Apply the Fourier transform to the list of remainders.

确定最强谐波的周期。

Identify the period of the strongest harmonic.

计算猜测的周期幂除以二,再减一。

Calculate the guess to the power of the period divided by two, minus one.

将欧几里得算法应用于该值和输入。

Apply Euclid's algorithm to that value and the input.

如果提供的值是输入的质因数,则停止迭代。

Stop iterating if the supplied value is a prime factor of the input.

将输入除以素数因子。

Divide the input by the prime factor.

提供两个质因数。

Provide both prime factors.

坚果

Nuts

介绍

INTRODUCTION

p. 9严格来说,偶数加法也是一种算法。

p. 9 Strictly speaking, even addition is an algorithm.

第9页一个常见的误解是“算法”一词与“方法”同义。这两个词并不相同。方法是一系列步骤。算法是解决信息问题的一系列步骤。

pg. 9 A common misconception is that the word 'algorithm' is synonymous with 'method'. The words are not the same. A method is a series of steps. An algorithm is a series of steps that solves an information problem.

第 11 页在这个例子中,书籍被视为代表书名的符号。重新排列书籍(即符号)可以达到对书名进行排序的效果。

pg. 11 In this example, the books are considered symbols that represent the titles of the books. Rearranging the books – the symbols – has the effect of sorting the titles.

第 1 章 古代算法

Chapter 1 Algorithms from Antiquity

p. 20印加人是迄今为止我们所知的唯一一个没有发明文字的青铜时代文明。古埃及数学记录在纸莎草纸上,因此许多内容很可能已经遗失。古埃及数学本质上是实用的,以数值计算为中心。美索不达米亚数学在算法的使用、应用和描述方面则更为明确。

p. 20 The Incas were the only Bronze Age civilization that, as far as we know, did not invent writing. Egyptian mathematics was recorded on papyrus. As a result, much is likely to have been lost. Ancient Egyptian mathematics was practical in nature and revolved around numerical calculations. Mesopotamian mathematics was more explicit in the use, application, and description of algorithms.

p. 21中美索不达米亚最初的城邦阿卡德发展成为阿卡德帝国,其领土覆盖了河流之间的大部分地区以及东方黎凡特的部分地区。

p. 21 The original city-state of Akkad in Central Mesopotamia grew into the Akkadian Empire, which extended over most of the area between the rivers and parts of the Levant, the Orient.

p. 27 海伦算法是更通用的牛顿-拉夫森方法的简化。

p. 27 Heron's algorithm is a simplification of the more general Newton-Raphson method.

p. 27通过将二除以最近的近似值而不是取最近近似值中间的值,可以加快近似算法的速度。

p. 27 The approximation algorithm can be made faster by dividing two by the most recent approximation instead of taking the value halfway between the most recent approximations.

p. 28 1994年,杰里·邦内尔(Jerry Bonnell)和罗伯特·内米罗夫(Robert Nemiroff)编写了一台VAX计算机,用于计算小数点后一千万位上的二的平方根。邦内尔和内米罗夫尚未公开他们使用的算法。

p. 28 In 1994, Jerry Bonnell and Robert Nemiroff programmed a VAX computer to calculate the square root of two to ten million decimal places. Bonnell and Nemiroff have not publicly disclosed the algorithm they used.

p. 31欧几里得算法的原始版本使用了减法。可以用除法代替。在某些情况下,使用除法更快,但需要注意的是,单个除法运算实际上是一系列减法运算。或者,也可以在对数域中用减法来执行除法。

p. 31 The original version of Euclid's algorithm used subtraction. It is possible to use division instead. In some cases, using division is faster, but it should be noted that a single division operation is actually a series of subtraction operations. Alternatively, division can be performed by subtraction in the logarithmic domain.

第二章 不断扩大的圈子

CHAPTER 2 Ever Expanding Circles

p. 39据称,阿基米德螺旋是由巴比伦人发明的,其设计在阿基米德时代被带到了埃及。

p. 39 It is claimed that the Archimedes' screw was invented by the Babylonians and the design was brought to Egypt in the time of Archimedes.

p. 40 阿基米德并不具备我们如今三角函数正弦、余弦和正切的优势。内六边形的边长为 2r sin (π/6)。该角是从中心到边交点的夹角。外六边形的边长为 3r tan (π/6)。

p. 40 Archimedes did not have our present-day advantages of the trigonometric functions sine, cosine, and tangent. The side length of the inner hexagon is 2r sin (π/6). The angle is the angle from the center to the intersection of the side. The side length of the outer hexagon is 3r tan ((π/6).

p.41阿基米德算法最终被基于无穷级数的计算所取代。

p. 41 Archimedes' algorithm was eventually replaced by calculations based on infinite series.

p. 43二次算法的形式为 ax 2 + bx + c = 0。其中a、bc 称为常数或系数,x 是需要确定的未知值。

p. 43 Quadratic algorithms have the form ax 2 + bx + c = 0. Where a, b and c are known as constants or coefficients and x is the unknown value to be determined.

p. 42《花剌子模完成与比较简明算术书》于 1145 年左右由切斯特的罗伯特翻译成拉丁文。

p. 42 The Concise Book of Arithmetic by Completion and Comparison of Al-Khwarizmi was translated into Latin by Robert of Chester around 1145.

p. 44其他文化也发展了十进制数字系统,包括中国和埃及。然而,他们使用不同的数字(数字表示法)和通常不同的位置系统。

p. 44 Other cultures developed decimal number systems, including the Chinese and the Egyptians. However, they used different numerals (number representations) and generally alternative positional systems.

p. 47 更准确地说,傅里叶声称,每个单变量函数都可以表示为一系列正弦函数的和,这些函数的周期是原函数周期的两个因数的指数。傅里叶级数此前已被莱昂哈德·欧拉、约瑟夫·路易斯·拉格朗日和卡尔·弗里德里希·高斯使用。然而,傅里叶的工作推广了这一概念,并成为后来相关研究的基础。

p. 47 More precisely, Fourier claimed that every function of one variable could be expressed as the sum of a series of sinusoidal functions whose periods were exponents of the two divisors of the period of the original function. Fourier series had been used earlier by Leonhard Euler, Joseph Louis Lagrange, and Carl Friedrich Gauss. However, Fourier's work popularized the concept and was the basis for later work on it.

p.48在傅里叶变换示例中,为了方便起见,我省略了恒定直流分量。

p. 48 In the Fourier transform example I omit the constant DC component for convenience.

p. 51 Tukey 还因创造软件和比特这两个术语而受到赞誉。

p. 51 Tukey also has the credit for coining the terms software and bit.

第三章 计算机之梦

CHAPTER 3 Computer Dreams

p. 56微分机1号的完整版本现已在伦敦科学博物馆展出。它几乎呈立方体形状——仅两英尺高、两英尺宽、四英尺深。一个木制平台支撑着一个金属框架,框架内装有三叠黄铜圆盘。圆盘上刻有十进制数字,并通过由轴、杠杆和齿轮组成的复杂机构连接在一起。机器顶部是一块金属板,上方是曲轴和一系列齿轮。克莱门特的精湛工艺和精准度显而易见,但从现代视角来看,这台设备更像是一台精巧的维多利亚时代收银机,而非计算机的雏形。

p. 56 The completed version of Differentiation Machine No. 1 is now on display in the Science Museum in London. It is almost cubic in shape – just two feet high, two feet wide and four feet deep. A wooden platform supports a metal frame containing three stacks of brass discs. The discs are inscribed with decimal digits and are linked together by intricate mechanisms of shafts, levers and wheels. A crankshaft and a series of gears sit on top of the machine, above a metal plate. Clement’s craftsmanship and precision are evident, but from a modern perspective the device looks more like an ingenious Victorian cash register than the beginnings of a computer.

第 60 页 阿达·洛夫莱斯对分析机项目的贡献在某些方面被夸大了。她并没有参与机器本身的设计。然而,她了解机器的功能、如何进行计算以及如何编程。她挑战巴贝奇,并促使他解释他的方法。她不仅思考了这台机器是什么,还对它的未来发展有着清晰的愿景。或许,她最大的成就是将巴贝奇的非凡理念传播给了更广泛的受众。

p. 60 Ada Lovelace's contribution to the Analytical Machine project has been overstated in places. She was not involved in the design of the machine itself. However, she understood what it did, how it could be used for calculations, and how to program it. She challenged Babbage and pushed him to explain his methods. Not only did she think about what the machine was, she had a vision of what it could become. Perhaps her greatest achievement was in communicating Babbage's extraordinary ideas to a wider audience.

p. 60分析机的一部分已经建造完毕,现藏于伦敦科学博物馆。

p. 60 Part of the Analytical Engine was built and is now in the Science Museum, London.

第60页 最令人毛骨悚然的是,巴贝奇的大脑一半在伦敦科学博物馆展出,另一半则保存在皇家外科医学院。分析机开创性论文的作者梅纳布雷亚后来成为意大利总理(1867-1869)。

p. 60 Most macabrely, half of Babbage's brain is on display in the Science Museum in London. The other half is kept at the Royal College of Surgeons. Menabrea, the author of the seminal paper on the Analytical Engine, would become Prime Minister of Italy (1867-1869).

p. 67图灵在普林斯顿大学的导师阿隆佐·丘奇(Alonzo Church)大约在同一时期提出了一种基于微积分的替代证明。图灵的提议与库尔特·哥德尔(Kurt Gödel)的早期工作密切相关。

p. 67 Turing's supervisor at Princeton, Alonzo Church, came up with an alternative proof based on differential calculus at roughly the same time. Turing's proposal was closely related to earlier work by Kurt Gödel.

p. 69图灵最初对图灵测试的描述,颇为奇怪,竟然将区分人类与计算机等同于区分男性与女性。这不禁让人怀疑,这是否暗示着他本人的同性恋倾向。

p. 69 Turing's original description of the Turing Test, oddly enough, equates distinguishing between human and computer with distinguishing between male and female. One wonders whether an undertone concerning his homosexuality is emerging there.

p. 69 据说苹果的标志象征着图灵床边的苹果。当被问及此事时,史蒂夫·乔布斯回答说并非如此,但他希望这是真的。

p. 69 Apple's logo is said to be a symbolic reference to the apple found next to Turing's bed. When asked, Steve Jobs replied that this was not the case, but that he wished it were true.

p. 70 1998 年发布了一种使 Z3 图灵完备的破解方法。

p. 70 A hack to make the Z3 Turing complete was published in 1998.

p.70在乔治·斯蒂比茨的领导下,贝尔实验室还开发了基于继电器的计算器。

p. 70 Under the leadership of George Stibitz, Bell Labs also developed a relay-based calculator.

第四章 天气预报

CHAPTER 4 Weather Forecasts

p. 77我在这里使用“计算机”一词作为伪图灵完备计算机的简写。伪指的是它没有无限的内存。伪图灵完备计算机是数字化的,因为它们处理数字,而这些数字代表着信息。所谓的“模拟计算机”是指功能固定的设备,它们用逐渐变化的物理量来表示信息。

p. 77 I use the word computer here as a shorthand for pseudo-turing-complete computer. Pseudo refers to the fact that it does not have an infinite memory. Pseudo-turing-complete computers are digital because they process numbers and those numbers represent information. So-called 'analog computers' are fixed-function devices that represent information with a gradually changing physical quantity.

p. 82拉森声明中的关键部分是“埃克特和莫奇利自己并不是自动电子数字计算机的首位发明者,而是从约翰·文森特·阿塔纳索夫博士那里借用了它的主题”。

p. 82 A crucial part of Larson's statement was that 'Eckert and Mauchly did not themselves first invent the automatic electronic digital computer, but instead borrowed its theme from one Dr. John Vincent Atanasoff'.

p.85大数定律指出,随着测试的进行,一系列机会过程测试的平均结果趋向于接近真实值。

p. 85 The law of large numbers states that the average outcome of a series of tests of a chance process tends to approach the true value as more tests are performed.

p.87恩里科·费米 (Enrico Fermi) 之前曾尝试过蒙特卡洛方法的一个版本,但他没有发表过相关论文。

p. 87 Enrico Fermi previously experimented with a version of the Monte Carlo method, but he did not publish on the subject.

p.87后来,大都会在伍迪·艾伦的电影《丈夫和妻子》中扮演一名科学家,从而在电影界赢得了一席之地。

p. 87 Metropolis later lived up to his name in cinema when he appeared as a scientist in a Woody Allen film, Husbands and Wives .

p. 91 1880年左右,亨利·庞加莱(Henri Poincaré)发现了一个由三个物体相互绕转构成的混沌系统。他还发展了一套理论来研究这一现象。

p. 91 Around 1880, Henri Poincaré recognized a chaotic system in the form of three bodies orbiting each other. He also developed a theory to investigate the phenomenon.

p. 93如今,集成电路中晶体管的数量每 24 个月就会翻一番——这是一个小小的放缓。

p. 93 Today, the number of transistors in an integrated circuit doubles every 24 months – a small slowdown.

第五章 人工智能的出现

CHAPTER 5 Artificial Intelligence Emerges

第99页 英国广播公司(BBC)录制了斯特雷奇的三首电脑创作的歌曲:英国国歌、《咩咩黑羊》(Baa Baa Black Sheep)《心情好》(In The Mood)。这些历史录音的修复版现已上线。

p. 99 The BBC (British Broadcasting Corporation) recorded three of Strachey's computer compositions: the British national anthem, Baa Baa Black Sheep and In The Mood. Restorations of the historic recordings are now online.

第109页 1971年,肖离开兰德公司,担任软件和编程顾问。他于1991年去世。

p. 109 In 1971 Shaw left RAND to work as a software and programming consultant. He died in 1991.

p. 114 Chinook 是由乔纳森·谢弗 (Jonathan Schaeffer) 编写的跳棋程序,于 1994 年击败了世界冠军马里恩·廷斯利 (Marion Tinsley)。

p. 114 Chinook, a checkers-playing program written by Jonathan Schaeffer, defeated world champion Marion Tinsley in 1994.

p. 114塞缪尔的学习和极小极大算法源自克劳德·香农在1950年一篇关于国际象棋的文章中提出的建议。与塞缪尔不同,香农并没有开发真正的程序。

p. 114 Samuel's procedures for learning and minimax grew out of suggestions made by Claude Shannon in a 1950 article on chess. Unlike Samuel, Shannon did not develop an actual program.

p. 115纽厄尔和西蒙还做出了另外三个预测,这些预测也都实现了。

p. 115 Newell and Simon made three other predictions that came true.

第六章 大海捞针

CHAPTER 6 Needles in Haystacks

p. 123如今,解决旅行商问题的最快算法也具有指数级复杂度。1976年,Nicos Christofides 设计了一种算法,可以快速生成一条路径,并保证其复杂度最多比最小路径低50%。此后,快速近似算法不断改进,可以保证复杂度达到最小路径的40%。

p. 123 Today, the fastest algorithm for solving the traveling salesman problem has exponential complexity. In 1976, Nicos Christofides devised an algorithm that quickly yields a route that is guaranteed to be at most 50 percent worse than the minimum route. Since then, fast approximation algorithms have been improved to yield a guarantee of 40 percent of the minimum.

p. 124 在最坏的情况下,快速排序需要的操作次数与插入排序一样多。

p. 124 In the worst case, QuickSort requires as many operations as Insertion Sort.

p. 129迄今为止唯一解决的千禧年大奖难题是庞加莱猜想,由格里戈里·佩雷尔曼于 2003 年提出。

p. 129 The only Millennium Prize Problem solved so far concerns the Poincaré conjecture, in 2003 by Grigori Perelman.

p. 130据信,乔治·福赛斯(George Forsythe)在1961年发表的一篇论文中首次使用了“计算机科学” 一词,但该术语的历史更悠久。路易斯·费恩(Luis Fein)在1959年的一篇论文中用它来描述大学计算机学院。

p. 130 George Forsythe is believed to have first used the term computer science in a paper published in 1961, but the term is older. Luis Fein used it in a 1959 paper to describe university computer schools.

第 138 页原始 NRMP 算法由 John Mullin 和 J.M. Stalnaker,在波士顿池算法被采用之前。Gale-Shapley 算法曾因过于简单而两次被拒绝发表,最终于 1962 年发表。

pg. 138 The original NRMP algorithm was developed by John Mullin and J.M. Stalnaker, prior to the adoption of the Boston Pool algorithm. The Gale-Shapley algorithm was rejected for publication twice as too simple before finally being published in 1962.

p. 139在霍兰德的研究之前,尼尔斯·巴里塞利(Nils Barricelli)和亚历山大·弗雷泽(Alexander Fraser)使用计算机算法来建模和研究生物进化过程。然而,他们的方案缺少霍兰德研究中纳入的几个关键要素。

p. 139 Prior to Holland's work, Nils Barricelli and Alexander Fraser used computer algorithms to model and study biological evolutionary processes. However, their proposals lacked several crucial elements that were incorporated in Holland's work.

p. 139 据称,霍兰德是美国第一位获得计算机科学博士学位的人。事实上,他当时正在密歇根大学攻读传播学博士学位,而不是计算机科学专业。美国最早的两位计算机科学博士学位颁发于同一天——1965年6月7日。获奖者分别是威斯康星大学的梅·凯玛修女和圣路易斯华盛顿大学的欧文·唐。

p. 139 It is claimed that Holland was the first person to receive a PhD in computer science in the United States. In fact, he was pursuing a PhD in communication studies at the University of Michigan, not a computer science program. The first two PhD degrees in computer science in the United States were awarded on the same day—June 7, 1965. The recipients were Sister May Kemmar at the University of Wisconsin and Irving Tang at Washington University in St. Louis.

p. 139费舍尔将他的书献给了达尔文的儿子伦纳德·达尔文,伦纳德是他的一位老朋友,在本书的写作过程中给予了他很大的支持。

p. 139 Fisher dedicated his book to Darwin's son, Leonard Darwin, a longtime friend of his who provided much support during the writing of the book.

p. 141矛盾的是,霍兰德利用自然进化的成功来证明他在遗传算法方面的工作,而生物学家则利用霍兰德的算法来支持他们关于自然进化存在的论点。

p. 141 Paradoxically, Holland used the success of natural evolution to justify his work on genetic algorithms, while biologists use Holland's algorithms to support their arguments for the existence of natural evolution.

第七章 互联网

CHAPTER 7 The Internet

p. 150关于 Leonard Kleinrock 在分组交换技术发展中所扮演的角色,存在一些争议。我认为 Kleinrock 在麻省理工学院攻读博士学位期间,发展了适用于分组交换网络的数学分析,但他并没有发明分组交换技术。

p. 150 There is some disagreement about Leonard Kleinrock's role in the development of packet switching. I believe that Kleinrock developed mathematical analyses applicable to packet switching networks during his PhD at MIT, but he did not invent packet switching.

p. 156 Internet 这个词是互联网 (internetworking) 的缩写,似乎最早是由 Vint Cerf 和他在斯坦福的两位同事 Yogen Dalal 和 Carl Sunshine 使用的。

p. 156 The word Internet, a shortened form of internetworking, appears to have been first used by Vint Cerf and two of his colleagues at Stanford, Yogen Dalal and Carl Sunshine.

p. 160 ISBN 校验位是通过依次乘以 1 和 3,将其余 12 位数字相加,取和的最后一位小数,再用 10 减去该数字,如有必要,将得到的 10 替换为 0 来计算的。以小说《权力的游戏》为例,其 ISBN 为 978-000754823-1。校验和为 (9 × 1) + (7 × 3) + (8 × 1) + (0 × 3) + (0 × 1) + (0 × 3) + (7 × 1) + (5 × 3) + (4 × 1) + (8 × 3) + (2 × 1) + (3 × 3) = 99。

校验和为 10 – 9 = 1。通过 ISBN 校验和的交叉验证,有十分之九的机会可以检测到单个数字的转录错误。

p. 160 The ISBN check digit is calculated from the twelve other digits by multiplying alternately by 1 and 3, adding the results together, taking the last decimal digit from the sum, subtracting it from the number 10, and, if necessary, replacing any resulting 10 with 0. Take, for example, the novel A Game of Thrones, whose ISBN is 978-000754823-1. The checksum is (9 × 1) + (7 × 3) + (8 × 1) + (0 × 3) + (0 × 1) + (0 × 3) + (7 × 1) + (5 × 3) + (4 × 1) + (8 × 3) + (2 × 1) + (3 × 3) = 99.

The checksum is 10 – 9 = 1. There is a nine out of ten chance that a single digit transcription error will be detected by the cross-validation of the ISBN checksum.

p. 165 快速确定错误位位置的方法是将奇偶校验结果以相反的顺序写入。在本例中,结果为 0011,其中 0 表示偶数计数(该组中无错误),1 表示奇数计数(该组中有错误)。该值可以解释为二进制数 0011,它表示错误的位置,在本例中为位置 3。

p. 165 The quick way to determine the incorrect bit position is to write the parity check results in reverse order. In the example, this gives 0011 where 0 indicates an even count (no error in that group) and 1 indicates an odd count (an error in that group). The value can be interpreted as the binary number 0011, which gives the position of the error, in this case, position 3.

p. 168 随后,默克尔于 1978 年撰写了一篇论文,描述了自己的想法。

p. 168 Merkle then wrote a paper in 1978 describing his own ideas.

p. 171罗恩·里维斯特、阿迪·沙米尔和伦纳德·阿德尔曼创作了三个角色:爱丽丝、鲍勃和伊芙(取自“窃听者”一词),用于描述他们的新加密算法。这三个角色如今已拥有了自己的生命,并经常出现在密码学和安全相关的文章中。

p. 171 The characters Alice, Bob, and Eve (after eavesdropper ) were created by Ron Rivest, Adi Shamir, and Leonard Adleman to describe their new encryption algorithm. The three characters have taken on a life of their own and are now routinely used in articles on cryptography and security.

p. 172 形式上,函数值是小于与其互质(或互质)的整数的个数。公共指数是介于 1 和函数值之间的一个数,且所选数与函数值互质。 互质意味着它们不能同时被同一个数整除,只有一个例外。一个简单的解决方案是将公共指数选为小于其幂的素数。

p. 172 Formally, the totient is the number of integers less than a number with which they are coprime, or relatively prime. The public exponent is a number between one and the totient with which the chosen number and the totient are relatively prime. Relative prime means that they cannot both be evenly divisible by the same number, except one. A simple solution is to choose the public exponent to be a prime number smaller than the totient.

第 8 章 谷歌搜索网页

CHAPTER 8 Googling the Web

p. 181 Mosaic 很快被 Netscape Navigator 取代。微软授权 Mosaic 开发 Internet Explorer。

p. 181 Mosaic was soon replaced by Netscape Navigator. Microsoft licensed Mosaic for the development of Internet Explorer.

第九章 Facebook 和朋友

CHAPTER 9 Facebook and Friends

p. 203实际上,还可以使用许多其他因素。例如,好的推荐系统不仅仅选择相似的用户和相似的电影。所有用户和电影都可以用作预测因子。假设 Ken 和 Jill 对电影的评价从来都不一致。假设 Ken 的评分与 Jill 的正好相反。如果 Ken 给一颗星,Jill 就给五颗星,以此类推。即使他们的评分不同,Ken 的评分实际上可以完美地预测 Jill 的评分。只需从 6 中减去 Ken 的评分即可。他们的评分历史总是不同的事实是有用的信息。

p. 203 In reality, many other factors can be used. For example, good recommenders do not just choose similar users and similar movies. All users and movies can be used as predictors. Suppose Ken and Jill never agree on movies. Let's say that Ken's ratings are exactly opposite to Jill's. If Ken gives one star, Jill says five stars, and so on. Even if their ratings are different, Ken's ratings can in fact perfectly predict Jill's. Simply subtract Ken's rating from 6. The fact that their rating histories are always different is useful information.

第 10 章 美国最受欢迎的智力竞赛节目

CHAPTER 10 America's Favorite Quiz Show

p. 214我在书中没有描述深蓝与卡斯帕罗夫之间的竞争,因为这更像是一个关于计算机芯片设计的故事,而不是一个关于算法的故事。

p. 214 I don't describe the competition between Deep Blue and Garry Kasparov in the book because it is more a story about the design of a computer chip than a story about an algorithm.

p. 215因开发出传奇的西洋双陆棋程序TD-Gammon 而闻名的 Gary Tesauro致力于该系统的游戏策略元素的研究。

p. 215 Gary Tesauro, famous for TD-Gammon, a legendary program that played backgammon, worked on the game strategy elements of the system.

第 11 章 模仿大脑

CHAPTER 11 Mimicking the Brain

p. 232计算网络层数时,输入层不计算在内。

p. 232 When counting the number of layers in a network, the input layer is not counted.

p.234明斯基和罗森布拉特都就读于布朗克斯科学高中。

p. 234 Minsky and Rosenblatt both attended the Bronx High School of Science.

p. 235 有人声称明斯基和罗森布拉特之间存在直接的个人争执,但我没有找到这方面的第一手描述。

p. 235 There are those who claim that there were direct personal disputes between Minsky and Rosenblatt, but I have found no first-hand descriptions of this.

p. 243乔治·欣顿 (George Hinton) 是乔治·布尔 (George Boole) 的曾曾孙。

p. 243 George Hinton is the great-great-grandchild of George Boole.

p. 244深度学习这个术语由 Rina Dechter 于 1986 年提出,指机器学习,由 Igor Aizenberg 于 2000 年提出,指神经网络。

p. 244 The term deep learning was introduced in 1986 by Rina Dechter to refer to machine learning and in 2000 by Igor Aizenberg to refer to neural networks.

p. 249谷歌于 2014 年接管了图灵奖的资助,奖金增加了四倍,达到 100 万美元。

p. 249 Google took over funding for the Turing Award in 2014, quadrupling the prize to $1 million.

第十三章 后续步骤

CHAPTER 13 Next Steps

p. 268最小的比特币是聪(satoshi)——一亿分之一比特币。

p. 268 The smallest bitcoin is the satoshi – one hundred millionth of a bitcoin.

第 268 页比特币概念的单词大写,而货币的引用则小写,即比特币。

pg. 268 The word for the Bitcoin concept is capitalized, while the reference to the currency is in lower case, bitcoin.

第 274 页如果 RSA 被破解,比特币可能会转向后量子密码技术,例如椭圆曲线密码技术。

pg. 274 If RSA is broken, Bitcoin could switch to post-quantum cryptography technology such as elliptic curve cryptography.

第 274 页理查德·费曼 (Richard Feynman) 于 1985 年出版的自传《别开玩笑了,费曼先生!》 (Surly You're Joking, Mr. Feynman! ) 使他真正声名鹊起。

p. 274 Richard Feynman's 1985 autobiography – Surely You're Joking, Mr. Feynman! – made him truly famous.

文学

Literature

Abbe, C.,1901. 长期天气预报的物理基础。《月度天气评论》, 29(12),第 551-561 页。

Abbe, C., 1901. The physical basis of long-range weather forecasts. Monthly Weather Review, 29(12), pg. 551-561.

Allen, K.,2015. 多伦多教授的研究如何彻底改变了人工智能。《星报》, 4月17日。

Allen, K., 2015. How a Toronto professor's research revolutionized artificial intelligence. The Star, April 17.

AlphaGo, 2017年[电影]。导演:Greg Kohs。美国:Reel as Dirt。

AlphaGo, 2017 [film]. Directed by Greg Kohs. USA: Reel as Dirt.

Anderson, J.A. 和 Rosenfeld, E.,2000 年。《会说话的网络》。马萨诸塞州剑桥:麻省理工学院出版社。

Anderson, J.A. and Rosenfeld, E., 2000. Talking Nets. Cambridge, MA: The MIT Press.

匿名用户,2016 年。全球 Facebook 月活跃用户数量。Statista [在线] https://www.statista.com/statistics/264810/numberof-monthly-active-facebook-users-worldwide/。(访问日期:2020 年 5 月 20 日)。

Anonymous 2016. Number of monthly active facebook users worldwide. Statista [online] https://www.statista.com/statistics/264810/numberof-monthly-active-facebook-users-worldwide/ . (Accessed 20 May 2020).

匿名,1958年。海军新设备“边做边学”。《纽约时报》, 7月8日。

Anonymous, 1958. New Navy device learns by doing. The New York Times, July 8.

匿名,1971年。弗兰克·罗森布拉特博士逝世,享年43岁;曾在康奈尔大学教授神经生物学。《纽约时报》,7月13日。

Anonymous, 1971. Dr. Frank Rosenblatt died at 43; taught neurobiology at Cornell. The New York Times , July 13.

匿名,2012年。《稳定匹配:理论、证据与实践设计》。技术报告,瑞典皇家科学院。

Anonymous, 2012. Stable matching: Theory, evidence, and practical design. Technical report, Royal Swedish Academy of Sciences.

匿名,2016年。互联网增长统计数据。互联网世界统计 [在线]。http ://www.internetworldstats.com/emarketing.htm。(访问日期:2020年5月19日)。

Anonymous, 2016. Internet growth statistics. Internet World Stats [online]. http://www.internetworldstats.com/emarketing.htm . (Accessed 19 May 2020).

匿名,2016年。詹姆斯·威廉·库利。 《纽约时报》。

Anonymous, 2016. James William Cooley. New York Times.

匿名,2016年。诺贝尔经济学奖得主劳埃德·沙普利去世。《经济学人》, 3月13日。

Anonymous, 2016. Lloyd Shapley, a Nobel laureate in economics, has died. The Economist, March 13.

匿名,2016年。网站总数。互联网实时统计 [在线] http://www.internetlivestats.com/total-number-of-websites/。(访问日期:2019年2月15日)。

Anonymous, 2016. Total number of websites. Internet Live Stats [online] http://www.internetlivestats.com/total-number-of-websites/ . (Accessed 15 February 2019).

匿名,2019 年。比特币能源消耗指数。https ://digiconomist.net/bitcoin-energy-consumption。(访问日期:2020 年 5 月 19 日)。

Anonymous, 2019. Bitcoin energy consumption index. https://digiconomist.net/bitcoin-energy-consumption . (Accessed May 19, 2020).

匿名用户,2019年。2005年至2018年全球互联网用户数量。Statista [在线]。https ://www.statista.com/statistics/273018/numberof-internet-users-worldwide/。(访问日期:2020年5月19日)。

Anonymous, 2019. Number of internet users worldwide from 2005 to 2018. Statista [online]. https://www.statista.com/statistics/273018/numberof-internet-users-worldwide/ . (Accessed 19 May 2020).

匿名,2019年。蒂姆·伯纳斯-李净资产。The Richest [在线]。https ://www.therichest.com/celebnetworth/celebrity-business/techmillionaire/tim-berners-lee-net-worth/。(访问日期:2019年7月22日)。

Anonymous, 2019. Tim Berners-Lee net worth. The Richest [online]. https://www.therichest.com/celebnetworth/celebrity-business/techmillionaire/tim-berners-lee-net-worth/ . (Accessed July 22, 2019).

匿名,楔形语言的机器翻译和自动分析(MTAAC项目)。https ://cdli-gh.github.io/mtaac/。(访问日期:2020年6月22日)。

Anonymous, Machine translation and automated analysis of cunei-form languages ​​(MTAAC Project). https://cdli-gh.github.io/mtaac/ . (Accessed June 22, 2020).

匿名人士,比特币创历史新高——1比特币在巅峰时期值多少钱?99BitCoins [在线]。https ://99bitcoins.com/bitcoin/historicalprice/all-time-high/#charts。(访问日期:2020年5月19日)。

Anonymous, nd Bitcoin all time high – how much was 1 bitcoin worth at its peak? 99BitCoins [online]. https://99bitcoins.com/bitcoin/historicalprice/all-time-high/#charts . (Accessed May 19, 2020).

匿名,无日期。市值。blockchain.com [在线]。https ://www.blockchain.com/charts/market-cap。(访问日期:2020 年 5 月 19 日)。

Anonymous, n.d. Market capitalization. blockchain.com [online]. https://www.blockchain.com/charts/market-cap . (Accessed May 19, 2020).

匿名,日期不详。量子 - Google AI。https ://ai.google/research/teams/applied-science/quantum-ai/。(访问日期:2020 年 5 月 19 日)。

Anonymous, n.d. Quantum - Google AI. https://ai.google/research/teams/applied-science/quantum-ai/ . (Accessed May 19, 2020).

Arute, F. 等人,2019. 利用可编程超导处理器实现量子霸权。《自然》,574(7779):505–510。

Arute, F., et al., 2019. Quantum supremacy using a programmable superconducting processor. Nature , 574(7779):505–510.

Assange, J.、Appelbaum, J.、Maguhn, A.M. 和 Zimmermann, J.,2016 年。 《密码朋克:互联网的自由与未来》。 伦敦:OR 出版社。

Assange, J., Appelbaum, J., Maguhn, A.M., and Zimmermann, J., 2016. Cypherpunks: Freedom and the Future of the Internet. London: OR books.

Atkins, D., Graff, M., Lenstra, AK, Leyland, PC, 1994. 魔法词是令人不安的骨质软骨。载于: 第四届国际密码学理论与应用会议论文集。澳大利亚伍伦贡,第261-277页。纽约:Springer出版社。

Atkins, D., Graff, M., Lenstra, AK, Leyland, PC, 1994. The magic words are squeamish ossifrage. In: Proceedings of the 4th International Conference on the Theory and Applications of Cryptology. Wollongong, Australia, pg. 261-277. NY: Springer.

Augarten, S.,1984。AW Burks,《谁发明了通用电子计算机?》,载《点点滴滴:图解计算机史》。纽约:Ticknor & Fields出版社。题词,第4章。

Augarten, S., 1984. AW Burks, 'Who invented the general-purpose electronic computer?' In Bit by bit: An Illustrated History of Computers. New York: Ticknor & Fields. Epigraph, Ch. 4.

Babbage, C.,2011。《哲学家生平札记》。剑桥:剑桥大学出版社。

Babbage, C., 2011. Passages from the Life of a Philosopher. Cambridge: Cambridge University Press.

Bahdanau, D.、Cho, K 和 Bengio, Y.,2014 年。通过联合学习对齐和翻译实现神经机器翻译。arXiv预印本 arXiv: 1409.0473。

Bahdanau, D., Cho, K, and Bengio, Y., 2014. Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv: 1409.0473.

Baran, P.,1964. 论分布式通信网络。IEEE 通信系统学报, 12(1),1-9页。

Baran, P., 1964. On distributed communications networks. IEEE Transactions on Communications Systems, 12(1), pg. 1-9.

Battelle, J.,2005。Google的诞生。《连线》, 13(8),第102页。

Battelle, J., 2005. The birth of Google. Wired, 13(8), pg. 102.

Beckmann,P.,1971。《圆周率的历史》。 科罗拉多州博尔德:The Golem Press。

Beckmann, P., 1971. A history of Pi. Boulder, CO: The Golem Press.

Bengio, Y., Ducharme, R., Vincent, P., 和 Jauvin, C.,2003 年。《神经概率语言模型》。《机器学习研究杂志》, 3,第 1137-1155 页。

Bengio, Y., Ducharme, R., Vincent, P., and Jauvin, C., 2003. A neural probabilistic language model. Journal of Machine Learning Research, 3, pg. 1137-1155.

Best, J.,2013。IBM Watson:《危险边缘》冠军超级计算机的诞生及其未来发展内幕。TechRepublic [在线]。http: //www.techrepublic.com/article/ibm-watson-the-inside-story-of-how-the-jeopardy-winning-supercomputer-was-born-and-what-it-wants-to-do-next/。(访问日期:2019 年 2 月 15 日)。

Best, J., 2013. IBM Watson: The inside story of how the Jeopardy-winning supercomputer was born, and what it wants to do next. TechRepublic [online]. http://www.techrepublic.com/article/ibm-watson-the-inside-story-of-how-the-jeopardy-winning-supercomputer-was-born-and-what-it-wants-to-do-next/ . (Accessed February 15, 2019).

Best, J.,2013。IBM Watson:《危险边缘》冠军超级计算机的诞生及其未来发展内幕。TechRepublic [在线]。http: //www.techrepublic.com/article/ibm-watson-the-insidestory-of-how-the-jeopardy-winning-supercomputer-was-born-and-what-it-wants-to-do-next/。(访问日期:2019 年 2 月 15 日)。

Best, J., 2013. IBM Watson: The inside story of how the Jeopardy-winning supercomputer was born, and what it wants to do next. TechRepublic [online]. http://www.techrepublic.com/article/ibm-watson-the-insidestory-of-how-the-jeopardy-winning-supercomputer-was-born-and-what-it-wants-to-do-next/ . (Accessed February 15, 2019).

Blair, C., 1957. 一位伟人的逝去。《生活》杂志, 42(8),第89-104页。

Blair, C., 1957. Passing of a great mind. Life Magazine, 42(8), pg. 89-104.

Block, HD, 1970.《感知器综述:计算几何导论》。信息与控制, 17(5),第 501-522 页。

Block, HD, 1970. A review of Perceptrons: An introduction to computational geometry. Information and Control, 17(5), pg. 501-522.

Boyer, CB 和 Merzbach, UC,2011。《数学史》。 牛津:John Wiley & Sons。

Boyer, CB and Merzbach, UC, 2011. A History of Mathematics. Oxford: John Wiley & Sons.

Brin, S. 和 Page, L.,1998 年。《大规模超文本网络搜索引擎的剖析》。《计算机网络与 ISDN 系统》, 30(1-7),第 107-117 页。

Brin, S. and Page, L., 1998. The anatomy of a large-scale hypertextual web search engine. Computer Networks and ISDN Systems, 30(1-7), pg. 107-117.

Burton-Hill, C.,2016. 人工智能的超级英雄:这位天才能否制衡人工智能?《卫报》, 2月16日。

Burton-Hill, C., 2016. The superhero of artificial intelligence: can this genius keep it in check? The Guardian, February 16.

Bush, V.,1945年。正如我们所想。《大西洋月刊》, 176(1),第101-108页。

Bush, V., 1945. As we may think. The Atlantic, 176(1), pg. 101-108.

Butler, D.,2013. 谷歌误判流感数据。《自然》, 494(7436),155页。

Butler, D., 2013. When Google got flu wrong. Nature, 494(7436), pg. 155.

Campbell-Kelly, M.,1985。克里斯托弗·斯特雷奇,1916-1975:传记笔记。 《计算史年鉴》, 7(1),第 19-42 页。

Campbell-Kelly, M., 1985. Christopher Strachey, 1916-1975: A biographical note. Annals of the History of Computing, 7(1), pg. 19-42.

CBS,1961年。《思考机器》。YouTube [在线]。https ://youtu.be/aygSMgK3BEM。(访问日期:2020年5月19日)。

CBS, 1961. The thinking machine. YouTube [online]. https://youtu.be/aygSMgK3BEM . (Accessed 19 May 2020).

Charney, JG 和 Eliassen, A.,1949。预测中纬度西风扰动的数值方法。Tellus 1(2),第 38-54 页。

Charney, JG and Eliassen, A., 1949. A numerical method for predicting the perturbations of the middle latitude westerlies. Tellus, 1(2), pg. 38-54.

Charney, JG,1949. 大气大尺度运动数值预报的物理基础。《气象学杂志》, 6(6),第372-385页。

Charney, JG, 1949. On a physical basis for numerical prediction of large scale motions in the atmosphere. Journal of Meteorology, 6(6), pg. 372-385.

Charney, J.G.,Fjörtoft, R. 和 von Neumann, J.,1950 年。正压涡度方程的数值积分。Tellus 2(4),第 237-254 页。

Charney, J.G., Fjörtoft, R., and von Neumann, J., 1950. Numerical integration of the barotropic vorticity equation. Tellus, 2(4), pg. 237-254.

Cho, K., Van Merriënboer, B., Bahdanau, D., 和 Bengio, Y.,2014 年。《论神经机器翻译的性质:编码器-解码器方法》。arXiv预印本 arXiv: 1409.1259。

Cho, K., Van Merriënboer, B., Bahdanau, D., and Bengio, Y., 2014. On the properties of neural machine translation: Encoder-decoder approaches. arXiv preprint arXiv: 1409.1259.

Christian, B. 和 Griffiths, T.,2016。 《算法人生》。纽约:麦克米伦出版社。

Christian, B. and Griffiths, T., 2016. Algorithms to Live By. New York: Macmillan.

Christofides, N.,1976. 旅行商问题新启发式算法的最坏情况分析。 技术报告,DTIC文档。

Christofides, N., 1976. Worst-case analysis of a new heuristic for the traveling salesman problem. Technical report, DTIC Document.

Ciresan, D.C.、Meier, U.、Gambardella, L.M. 和 Schmidhuber, J.,2010 年。深度大型简单神经网络在手写数字识别方面表现出色。arXiv预印本 arXiv: 1003.0358。

Ciresan, D.C., Meier, U., Gambardella, L.M., and Schmidhuber, J., 2010. Deep big simple neural nets excel on handwritten digit recognition. arXiv preprint arXiv: 1003.0358.

柯南·道尔,A.,1890年。《四签名》。《利平科特月刊》。二月刊。

Conan Doyle, A., 1890. The sign of four. Lippincott's Monthly Magazine. February.

Conway, F. 和 Siegelman, J.,2006。信息时代的黑暗英雄:寻找控制论之父诺伯特·维纳。纽约:Basic Books。

Conway, F. and Siegelman, J., 2006. Dark Hero of the Information Age: In Search of Norbert Wiener The Father of Cybernetics . New York: Basic Books.

Cook, S., Conrad, C., Fowlkes, A.L., Mohebbi, M.H.,2011. 评估谷歌流感趋势在2009年美国甲型H1N1流感大流行期间的表现。PLOS ONE, 6(8),e23610。

Cook, S., Conrad, C., Fowlkes, A.L., Mohebbi, M.H., 2011. Assessing Google flu trends performance in the United States during the 2009 influenza virus A (H1N1) pandemic. PLOS ONE, 6(8), e23610.

Cook, S.A.,1971. 定理证明程序的复杂性。载于: 第三届ACM计算理论研讨会论文集。纽约:ACM,第151-158页。

Cook, S.A., 1971. The complexity of theorem-proving procedures. In: Proceedings of the 3rd annual ACM Symposium on Theory of Computing. New York: ACM, pg. 151-158.

Cook, W.,无日期。旅行商问题。http ://www.math.uwaterloo.ca/tsp/index.html。(2020年5月19日访问)。

Cook, W., n.d. Traveling salesman problem. http://www.math.uwaterloo.ca/tsp/index.html . (Accessed 19 May 2020).

Cooley, JW 和 Tukey, JW, 1965. 一种用于机器计算复傅里叶级数的算法。计算数学, 19(90),第 297-301 页。

Cooley, JW and Tukey, JW, 1965. An algorithm for the machine calculation of complex Fourier series. Mathematics of Computation, 19(90), pg. 297-301.

Copeland, B. Jack.,2014.图灵。牛津:牛津大学出版社。

Copeland, B. Jack., 2014. Turing. Oxford: Oxford University Press.

Copeland, J. 和 Long, J.,2016 年。《修复首张计算机音乐录音》。https://blogs.bl.uk/sound-and-vision/2016/09/restoring-the-first-recording-of-computer-music.html# (访问日期:2020 年 2 月 15 日)。

Copeland, J. and Long, J., 2016. Restoring the first recording of computer music. https://blogs.bl.uk/sound-and-vision/2016/09/restoring-the-first-recording-of-computer-music.html# . (Accessed 15 February 2020).

Dalley, S.,1989。《美索不达米亚的神话》。牛津:牛津大学出版社。

Dalley, S., 1989. Myths from Mesopotamia. Oxford: Oxford University Press.

Dantzig, G.、Fulkerson, R. 和 Johnson, S.,1954 年。《大规模旅行商问题的求解》。《美国运筹学会杂志》, 2(4),第 393-410 页。

Dantzig, G., Fulkerson, R., and Johnson, S., 1954. Solution of a large-scale traveling-salesman problem. Journal of the Operations Research Society of America, 2(4), pg. 393-410.

Darrach, B.,1970. 遇见Shaky:第一个电子人。《生活》杂志, 69(21):58B-68B。

Darrach, B., 1970. Meet Shaky: The first electronic person. Life Magazine, 69(21):58B-68B.

Davies, DW, 2001. 分组交换起源的历史研究。《计算机杂志》, 44(3),第 152-162 页。

Davies, DW, 2001. An historical study of the beginnings of packet switching. The Computer Journal, 44(3), pg. 152-162.

Davis, M.,1983。《可计算性与不可解性》。纽约州米尼奥拉:Dover 出版社。

Davis, M., 1983. Computability and Unsolvability. Mineola, NY: Dover Publications.

Davis, W. S., 1913. 《古代史读本:希腊与东方》插图摘录。纽约: Allyn and Bacon 出版社。

Davis, W.S., 1913. Readings in Ancient History, Illustrative Extracts from the Source: Greece and the East . New York: Allyn and Bacon.

Dawkins, R.,1986。《盲眼钟表匠》。纽约:W. W. Norton & Company。

Dawkins, R., 1986. The Blind Watchmaker. New York: W. W. Norton & Company.

Debter, L.,2019年。亚马逊超越沃尔玛,成为全球最大零售商。《福布斯》[在线]。https ://www.forbes.com/sites/laurendebter/2019/05/15/worlds-largest-retailers-2019-amazon-walmart-alibaba/#20e4cf4d4171。(访问日期:2019年7月18日)。

Debter, L., 2019. Amazon surpasses Walmart as the world's largest retailer. Forbes [online]. https://www.forbes.com/sites/laurendebter/2019/05/15/worlds-largest-retailers-2019-amazon-walmart-alibaba/#20e4cf4d4171 . (Accessed 18 July 2019).

Dietrich, L.,Dietrich, O. 和 Notroff, J.,2017。《邪教是人类历史的驱动力》。 《探险杂志》, 59(3),第 10-25 页。

Dietrich, L., Dietrich, O., and Notroff, J., 2017. Cult as a driving force of human history. Expedition Magazine, 59(3), pg. 10-25.

Diffie, W. 和 Hellman, M.,1976 年。《密码学的新方向》。IEEE信息理论汇刊, 22(6),第 644-654 页。

Diffie, W. and Hellman, M., 1976. New directions in cryptography. IEEE Transactions on Information Theory, 22(6), pg. 644-654.

Dijkstra, EW, 1959. 关于图的两个问题的注记。 《数值数学》, 1(1),第 269-71 页。

Dijkstra, EW, 1959. A note on two problems in connection with graphs. Numerical Mathematik, 1(1), pg. 269-71.

Dijkstra, EW, 1972. 谦逊的程序员. ACM通讯, 15(10), 第859-866页.

Dijkstra, EW, 1972. The humble programmer. Communications of the ACM, 15(10), pg. 859-866.

Dijkstra, EW,2001年。Edsger W. Dijkstra口述历史访谈。技术报告,查尔斯·巴贝奇研究所,8月2日。

Dijkstra, EW, 2001. Oral history interview with Edsger W. Dijkstra. Technical report, Charles Babbage Institute, August 2.

Dreyfus, HL, 2005. 克服精神的迷思:哲学家如何从日常经验的现象学中获益。载于:《美国哲学协会会刊与演讲》, 79(2),第47-65页。

Dreyfus, HL, 2005. Overcoming the myth of the mental: How philosophers can profit from the phenomenology of everyday expertise. In: Proceedings and Addresses of the American Philosophical Association, 79(2), pg. 47-65.

Driscoll, S.,2013 年。《比特币的底层运作机制》。《Imponderable Things》[在线]。http ://www.imponderablethings.com/2013/07/howbitcoin-works-under-hood.html#more。(访问日期:2020 年 5 月 19 日)。

Driscoll, S., 2013. How Bitcoin works under the hood. Imponderable Things [online]. http://www.imponderablethings.com/2013/07/howbitcoin-works-under-hood.html#more . (Accessed May 19, 2020).

Dyakonov, M.,2018. 反对量子计算的案例。IEEE Spectrum, 11 月 15 日。

Dyakonov, M., 2018. The case against quantum computing. IEEE Spectrum, November 15.

Eckhardt, R.,1987。Stan Ulam、John von Neumann 和蒙特卡罗方法。洛斯阿拉莫斯科学, 15(131-136),第 15 页。 30.

Eckhardt, R., 1987. Stan Ulam, John von Neumann, and the Monte Carlo method. Los Alamos Science, 15(131-136), pg. 30.

Edwards, J.,2016. 看看围棋世界冠军意识到DeepMind 实力超群的那一刻。Business Insider [在线]。https ://www.businessinsider.com/video-lee-se-dol-reaction-to-move-37-and-w102-vs-alphago-2016-3 ?r=US&IR=T。(访问日期:2020 年 5 月 19 日)。

Edwards, J., 2016. See the exact moment the world champion of Go realizes DeepMind is vastly superior. Business Insider [online]. https://www.businessinsider.com/video-lee-se-dol-reaction-to-move-37-and-w102-vs-alphago-2016-3?r=US&IR=T . (Accessed May 19, 2020).

Ellis, JH,1970年。非秘密加密的可能性。见:英国通信电子安全小组(CESG) 报告。1月。

Ellis, JH, 1970. The possibility of non-secret encryption. In: British Communications-Electronics Security Group (CESG) report. January.

Ellis, JH, 1999. 非秘密加密的历史。Cryptologia , 23(3),第 267-273 页。

Ellis, JH, 1999. The history of non-secret encryption. Cryptologia, 23(3), pg. 267-273.

Epstein, E.S.,1969. 随机动态预测。Tellus , 21(6),第 739-759 页。

Epstein, E.S., 1969. Stochastic dynamic prediction. Tellus, 21(6), pg. 739-759.

Essinger, J.,2014。《艾达的算法:拜伦勋爵的女儿艾达·洛夫莱斯如何开启数字时代》。伦敦:梅尔维尔出版社。

Essinger, J., 2014. Ada's algorithm: How Lord Byron's daughter Ada Lovelace Launched the Digital Age. London: Melville House.

欧洲中期天气预报中心,2020年。通过国际合作推进全球数值天气预报。http ://www.ecmwf.int。(2020年5月19日访问)。

European Center for Medium-Range Weather Forecasts, 2020. Advancing global NWP through international collaboration. http://www.ecmwf.int . (Accessed May 19, 2020).

Fahey, R.,2005年。Elixir Studios因关键项目取消而关闭。gamesindustry.biz [在线]。https ://www.gamesindustry.biz/articles/elixir-studios-to-close-following-cancellation-of-key-project。(访问日期:2020年5月19日)。

Fahey, R., 2005. Elixir Studios to close following cancellation of key project. gamesindustry.biz [online]. https://www.gamesindustry.biz/articles/elixir-studios-to-close-following-cancellation-of-key-project . (Accessed May 19, 2020).

Fan, J.、Kalyanpur, A.、Condek, D.C. 和 Ferrucci, D.A.,2012 年。《从文档中自动提取知识》。《IBM 研究与开发杂志》, 56(3.4),第 5 页:1-10。

Fan, J., Kalyanpur, A., Condek, D.C., and Ferrucci, D.A., 2012. Automatic knowledge extraction from documents. IBM Journal of Research and Development, 56(3.4), pg. 5:1-10.

Fan, J.、Kalyanpur, A.、Condek, D.C. 和 Ferrucci, D.A.,2012 年。《从文档中自动提取知识》。《IBM 研究与开发杂志》, 56(3.4),第 5 页:1-10。

Fan, J., Kalyanpur, A., Condek, D.C., and Ferrucci, D.A., 2012. Automatic knowledge extraction from documents. IBM Journal of Research and Development, 56(3.4), pg. 5:1-10.

Farley, BWAC 和 Clark, W.,1954. 利用数字计算机模拟自组织系统。IRE信息理论专业组汇刊, 4(4),第 76-84 页。

Farley, BWAC and Clark, W., 1954. Simulation of self-organizing systems by digital computer. Transactions of the IRE Professional Group on Information Theory, 4(4), pg. 76-84.

Featherly, K.,2016。阿帕网。载于《大英百科全书》 [在线版]。https ://www.britannica.com/topic/ARPANET。(访问日期:2020年5月19日)。

Featherly, K., 2016. ARPANET. In Encyclopaedia Brittanica [online]. https://www.britannica.com/topic/ARPANET . (Accessed 19 May 2020).

Fee, GJ,1996 年。2 到千万位的平方根。http ://www.plouffe.fr/simon/constants/sqrt2.txt。(访问日期:2019 年 7 月 5 日)。

Fee, GJ, 1996.The square root of 2 to 10 million digits. http://www.plouffe.fr/simon/constants/sqrt2.txt . (Accessed July 5, 2019).

Ferrucci, D.A.,2012. Watson 简介。IBM 研究与开发杂志, 56(3.4),第 1 页:1-15。

Ferrucci, D.A., 2012. Introduction to this is Watson. IBM Journal of Research and Development, 56(3.4), pg. 1:1-15.

Ferrucci, D.A.,2012. Watson 简介。IBM 研究与开发杂志, 56(3.4),第 1 页:1-15。

Ferrucci, D.A., 2012. Introduction to this is Watson. IBM Journal of Research and Development, 56(3.4), pg. 1:1-15.

Feynman RP,1982。用计算机模拟物理。《国际理论物理杂志》, 21(6),第 467-488 页。

Feynman RP, 1982. Simulating physics with computers. International Journal of Theoretical Physics, 21(6), pg. 467-488.

Finkel, I.,2014。诺亚之前的方舟。阿歇特出版社。

Finkel, I., 2014. The Ark before Noah . Hachette.

Fisher, R.A.,1999.自然选择的遗传理论。牛津:牛津大学出版社。

Fisher, R.A., 1999. The Genetical Theory of Natural Selection . Oxford: Oxford University Press.

Foster, RW,2009。《围棋经典》。http ://idp.bl.uk/。(2020 年 5 月 20 日访问)。

Foster, RW, 2009. The classic of Go. http://idp.bl.uk/ . (Accessed May 20, 2020).

Fowler, D. 和 Robson, E.,1998 年。古巴比伦数学中的平方根近似:YBC 7289 的相关内容。《数学史》, 25(4),第 366-78 页。

Fowler, D. and Robson, E., 1998. Square root approximations in ancient Babylonian mathematics: YBC 7289 in context. Historia Mathematica, 25(4), pg. 366-78.

Foy, N.,1974. 夜鸟的文字游戏(Christopher Strachey访谈)。 《计算欧洲》, 15卷,第10-11页。

Foy, N., 1974. The word games of the night bird (interview with Christopher Strachey). Computing Europe, 15, pg. 10-11.

Fritz, WB, 1996. ENIAC中的女性。IEEE计算史年鉴, 18(3),13-28页。

Fritz, WB, 1996. The women of ENIAC. IEEE Annals of the History of Computing, 18(3), pg. 13-28.

Gardner, M.,1977. 一种需要数百万年才能破解的新型密码。《科学美国人》, 237(8月),第120-124页。

Gardner, M., 1977. New kind of cipher that would take millions of years to break. Scientific American. 237 (August), pg. 120-124.

Garey, M.R. 和 Johnson, D.S.,1979。《计算机与难解性》。纽约:W. H. Freeman and Company。

Garey, M.R. and Johnson, D.S., 1979. Computers and Intractability. New York: W. H. Freeman and Company.

Gefter, A.,2015年。《试图用逻辑拯救世界的人》。Nautilus 2月21日。

Gefter, A., 2015. The man who tried to redeem the world with logic. Nautilus, February 21.

Ginsberg, J., Mohebbi, MH, Patel, RS, Brammer, L., Smolinski, MS, 和 Brilliant, L.,2009. 使用搜索引擎查询数据检测流感疫情。《自然》, 457(7232),第 1012-1014 页。

Ginsberg, J., Mohebbi, MH, Patel, RS, Brammer, L., Smolinski, MS, and Brilliant, L., 2009. Detecting influenza epidemics using search engine query data. Nature, 457(7232), pg. 1012-1014.

Goldstein, H.H.,1980。《 从帕斯卡到冯·诺依曼的计算机》。新泽西州普林斯顿:普林斯顿大学出版社。

Goldstein, H.H., 1980. The Computer from Pascal to von Neumann. Princeton, NJ: Princeton University Press.

Gomez-Uribe, C.A. 和 Hunt, N.,2015。Netflix 推荐系统:算法、商业价值和创新。ACM管理信息系统学报,6(4),第 13 页:1-19。

Gomez-Uribe, C.A. and Hunt, N., 2015. The Netflix recommender system: Algorithms, business value, and innovation. ACM Transactions on Management Information Systems , 6(4), pg. 13:1-19.

Gondek, D.C., Lally, A., Kalyanpur, A., Murdock, J.W., Duboue, P.A., Zhang, L., Pan, Y., Qui, Z.M. 和 Welty, C.,2012 年。DeepQA 中的答案合并与排序框架。IBM 研究与开发杂志, 56(3.4),第 14 页:1-12。

Gondek, D.C., Lally, A., Kalyanpur, A., Murdock, J.W., Duboue, P.A., Zhang, L., Pan, Y., Qui, Z.M., and Welty, C., 2012. A framework for merging and ranking of answers in DeepQA. IBM Journal of Research and Development, 56(3.4), pg. 14: 1-12.

Gondek, D.C., Lally, A., Kalyanpur, A., Murdock, J.W., Duboue, P.A., Zhang, L., Pan, Y., Qui, Z.M. 和 Welty, C.,2012 年。DeepQA 中的答案合并与排序框架。IBM研究与开发杂志, 56(3.4),第 14 页:1-12。

Gondek, D.C., Lally, A., Kalyanpur, A., Murdock, J.W., Duboue, P.A., Zhang, L., Pan, Y., Qui, Z.M., and Welty, C., 2012. A framework for merging and ranking of answers in DeepQA. IBM Journal of Research and Development, 56(3.4), pg. 14: 1-12.

Gray, J.,2017。多伦多大学教授Geoffrey Hinton被誉为新计算时代的大师。《环球邮报》,4月7日。

Gray, J., 2017. U of T Professor Geoffrey Hinton hailed as guru of new computing era. The Globe and Mail , April 7.

Greenberg, A.,2016。《如何证明你是比特币的创造者中本聪》。《连线》, 4月11日。

Greenberg, A., 2016. How to prove you're Bitcoin creator Satoshi Nakamoto. Wired, April 11.

Grimes, W.,2015。计算机化进化的约翰·亨利·霍兰德去世,享年86岁。《纽约时报》,8月19日。

Grimes, W., 2015. John Henry Holland, who computerized evolution, dies at 86. New York Times , August 19.

Grimland, G.,2009。Facebook创始人室友讲述互联网巨头的创立历程。《国土报》[在线]。https ://www.haaretz.com/1.5050614。(访问日期:2019年7月23日)。

Grimland, G., 2009. Facebook founder's roommate recounts creation of Internet giant. Haaretz [online]. https://www.haaretz.com/1.5050614 . (Accessed 23 July 2019).

Gustin, S.,2011年。《IBM计划在人类自己的游戏中击败人类的背后》。 《连线》, 2月14日。

Gustin, S., 2011. Behind IBM's plan to beat humans at their own game. Wired, February 14.

Harper, R.F.,1904. 《巴比伦国王汉谟拉比法典》。芝加哥:芝加哥大学出版社。

Harper, R.F., 1904. The Code of Hammurabi, King of Babylon. Chicago: The University of Chicago Press.

Hart, PE, Nilsson, NJ 和 Raphael, B.,1968 年。启发式确定最小成本路径的形式化基础。IEEE系统科学与控制论学报, 4(2),第 100-107 页。

Hart, PE, Nilsson, NJ, and Raphael, B., 1968. A formal basis for the heuristic determination of minimum cost paths. IEEE Transactions on Systems Science and Cybernetics, 4(2), pg. 100-107.

Hayes, A.,2019年。“互联网泡沫定义”。Investopedia [在线]。https ://www.investopedia.com/terms/d/dotcom-bubble.asp,6月25日。(2019年7月19日访问)。

Hayes, A., 2019. Dotcom bubble definition. Investopedia [online]. https://www.investopedia.com/terms/d/dotcom-bubble.asp , June 25. (Accessed July 19, 2019).

Hebb, D.O., 1949. 《行为的组织》。纽约:威利。

Hebb, D.O., 1949. The Organization of Behavior. NY: Wiley.

Heidenman, C.,Johnson, D.和Burrus, C.,1984。高斯和快速傅里叶变换的历史。IEEE ASSP杂志, 1(4),第14-21页。

Heidenman, C., Johnson, D., and Burrus, C., 1984. Gauss and the history of the fast Fourier transform. IEEE ASSP Magazine, 1(4), pg. 14-21.

Hern, A.,2016。《AlphaGo:通过思考学习的计算机的创造者》。《卫报》,3月15日。

Hern, A., 2016. AlphaGo: Its creator on the computer that learns by thinking. The Guardian , March 15.

Hinton, G. 等,2012. 用于语音识别声学建模的深度神经网络:四个研究小组的共同观点。IEEE信号处理杂志,29(6),第 82-97 页。

Hinton, G., et al., 2012. Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups. IEEE Signal Processing Magazine , 29(6), pg. 82-97.

Hinton, G.E., Osindero, S., 和 Teh, Y.W.,2006. 深度信念网络的快速学习算法。《神经计算》, 18(7),第 1527-1554 页。

Hinton, G.E., Osindero, S., and Teh, Y.W., 2006. A fast learning algorithm for deep belief nets. Neural Computation, 18(7), pg. 1527-1554.

Hitsch, GJ, Hortaçsu, A. 和 Ariely, D.,2010。《在线约会中的匹配与排序》。《美国经济评论》, 100(1),第 130-163 页。

Hitsch, GJ, Hortaçsu, A., and Ariely, D., 2010. Matching and sorting in online dating. The American Economic Review, 100(1), pg. 130-163.

Hoare, C.A.R.,1962. 快速排序。 《计算机杂志》, 5(1),第 10-16 页。

Hoare, C.A.R., 1962. Quicksort. The Computer Journal, 5(1), pg. 10-16.

Holland, J.H.,1992。 《自然与人工系统的适应性》。马萨诸塞州剑桥:麻省理工学院出版社。

Holland, J.H., 1992. Adaptation in Natural and Artificial Systems. Cambridge, MA: The MIT Press.

Holland, JH, 1992. 遗传算法。 《科学美国人》, 267(1),第 66-73 页。

Holland, JH, 1992. Genetic algorithms. Scientific American, 267(1), pg. 66-73.

Hornik, K., Stinchcombe, M., 和 White, H.,1989. 多层前馈网络是通用逼近器。神经网络, 2(5),第 359-366 页。

Hornik, K., Stinchcombe, M., and White, H., 1989. Multilayer feedforward networks are universal approximators. Neural Networks, 2(5), pg. 359-366.

Hughes, E.,1993 年。《密码朋克宣言——行动主义》。https ://www.activism.net/cypherpunk/manifesto.html。(2020 年 5 月 19 日访问)。

Hughes, E., 1993. A Cypherpunk's manifesto – Activism. https://www.activism.net/cypherpunk/manifesto.html . (Accessed May 19, 2020).

Hunt, JCR, 1998. Lewis Fry Richardson及其对数学、气象学和冲突模型的贡献。《流体力学年鉴》,30(1),xiii-xxxvi页。

Hunt, JCR, 1998. Lewis Fry Richardson and his contributions to mathematics, meteorology, and models of conflict. Annual Review of Fluid Mechanics , 30(1), pg. xiii-xxxvi.

赫胥黎,T. H.,1887。《过去半个世纪的科学进步》。纽约:Appleton and Company。

Huxley, T. H., 1887. The Advance of Science in the Last Half-Century. New York: Appleton and Company.

IBM 研究院,2013 年。《沃森与《危险边缘!》(Watson and the Jeopardy!)挑战赛。YouTube [在线]。https ://www.youtube.com/watch?v =P18EdAKuC1U。(访问日期:2019 年 9 月 15 日)。

IBM Research, 2013. Watson and the Jeopardy! Challenge. YouTube [online]. https://www.youtube.com/watch?v=P18EdAKuC1U . (Accessed 15 September 2019).

投资者档案,2017年。亿万富翁马克·扎克伯格:创建Facebook及创业建议。YouTube [在线]。https ://youtu.be/SSly3yJ8mKU

Investors Archive, 2017. Billionaire Mark Zuckerberg: Creating Facebook and startup advice. YouTube [online]. https://youtu.be/SSly3yJ8mKU .

Isaacson, W.,2014。《创新者》。纽约:西蒙舒斯特出版社。

Isaacson, W., 2014. The Innovators. New York: Simon and Schuster.

Jaitly, N.、Nguyen, P.、Senior, AW 和 Vanhoucke, V.,2012 年。预训练深度神经网络在大词汇量语音识别中的应用。刊于:国际语音通信协会(Interspeech)第 13 届年会论文集。 俄勒冈州波特兰,2012 年 9 月 9 日至 13 日,第 257-281 页。

Jaitly, N., Nguyen, P., Senior, AW, and Vanhoucke, V., 2012. Application of pretrained deep neural networks to large vocabulary speech recognition. In: Proceedings of the 13th Annual Conference of the International Speech Communication Association (Interspeech). Portland, Oregon, September 9-13, 2012, pg. 257-281.

James, W.,1890。 《心理学原理》。纽约:霍尔特。

James, W., 1890. The Principles of Psychology. NY: Holt.

Jaynes, J.,1976. 《双心智崩溃中的意识起源》。纽约:霍顿·米夫林·哈考特出版社。

Jaynes, J., 1976. The Origin of Consciousness in the Breakdown of the Bicameral Mind. New York: Houghton Mifflin Harcourt.

Johnston, C.,2012年。Netflix因工程成本问题从未使用其耗资100万美元的算法。《连线》,4月16日。

Johnston, C., 2012. Netflix never used its $1 million algorithm due to engineering costs. Wired , April 16.

Jones, D.,2018 年。PageRank 的真正工作原理:理解 Google。Majestic [博客]。https ://blog.majestic.com/company/understanding-googlesalgorithm-how-pagerank-works/,10月 25 日。(2019 年 7 月 12 日访问)。

Jones, D., 2018. How PageRank really works: Understanding Google. Majestic [blog]. https://blog.majestic.com/company/understanding-googlesalgorithm-how-pagerank-works/ , October 25. (Accessed July 12, 2019).

卡普兰,KA,2003年。Facemash创始人幸存广告牌。《哈佛深红报》, 2003年11月。

Kaplan, KA, 2003. Facemash creator survives ad board. The Harvard Crimson, Nov.

Karp, R.,无日期。《伯克利大学计算机科学的个人观点》。https ://www2.eecs.berkeley.edu/bears/CS_Anniversary/karp-talk.html。(访问日期:2019年2月15日)

Karp, R., n.d. A personal view of Computer Science at Berkeley. https://www2.eecs.berkeley.edu/bears/CS_Anniversary/karp-talk.html . (Accessed February 15, 2019)

Katz, VJ ed.,2007。《埃及、美索不达米亚、中国、印度和伊斯兰的数学》。新泽西州普林斯顿:普林斯顿大学出版社。

Katz, VJ ed., 2007. The Mathematics of Egypt, Mesopotamia, China, India, and Islam. Princeton, NJ: Princeton University Press.

Katz, V.,2008。《数学史》。伦敦:Pearson。

Katz, V., 2008. A History of Mathematics. London: Pearson.

Keating, G.,2012. Netflixed。伦敦:企鹅出版社。

Keating, G., 2012. Netflixed. London: Penguin.

Kelly, K.,1994。《失控》。 伦敦:Fourth Estate。

Kelly, K., 1994. Out of Control. London: Fourth Estate.

Keough, B.,1997 年。《约翰·克利福德·肖论文指南》。http ://sova.si.edu/record/NMAH.AC.0580。(2020 年 5 月 19 日访问)。

Keough, B., 1997. Guide to the John Clifford Shaw Papers. http://sova.si.edu/record/NMAH.AC.0580 . (Accessed May 19, 2020).

Kim, EE 和 Toole, BA, 1999. Ada 和第一台计算机。《科学美国人》, 280(5),第 76-81 页。

Kim, EE and Toole, BA, 1999. Ada and the first computer. Scientific American, 280(5), pg. 76-81.

Kirkpatrick, D.,2010。《Facebook效应》。 纽约:西蒙与舒斯特出版社。

Kirkpatrick, D., 2010. The Facebook Effect. New York: Simon and Schuster.

Kita, C.I.,2003. JCR Licklider 对 IPTO 的愿景。IEEE计算史年鉴, 25(3),第 62-77 页。

Kita, C.I., 2003. JCR Licklider's vision for the IPTO. IEEE Annals of the History of Computing, 25(3), pg. 62-77.

Kleiman, K.,2014。《计算机:ENIAC程序员的非凡故事》。Vimeo [在线]。https ://vimeo.com/ondemand/eniac6。(访问日期:2019年3月11日)。

Kleiman, K., 2014. The computers: The remarkable story of the ENIAC programmers. Vimeo [online]. https://vimeo.com/ondemand/eniac6 . (Accessed 11 March 2019).

Knuth, D.E., 1972. 古巴比伦算法。 《ACM通讯》, 15(7),第671-677页。

Knuth, D.E., 1972. Ancient Babylonian algorithms. Communications of the ACM, 15(7), pg. 671-7.

Kolodner, J.L.,1978.自然语言数据库查询的记忆组织。技术报告,耶鲁大学。

Kolodner, J.L., 1978. Memory organization for natural language data-base inquiry. Technical report, Yale University.

Kolodner, JL, 1983. 动态长期记忆的组织维持。《认知科学》, 7(4),第243-280页。

Kolodner, JL, 1983. Maintaining organization in a dynamic long-term memory. Cognitive Science, 7(4), pg. 243-280.

Kolodner, J.L.,1983. 重构记忆:一个计算机模型。《认知科学》, 7(4),第 281-328 页。

Kolodner, J.L., 1983. Reconstructive memory: A computer model. Cognitive Science, 7(4), pg. 281-328.

Koren, Y.,2009。Bellkor 解决 Netflix 大奖的解决方案。Netflix大奖文献, 81:1-10。

Koren, Y., 2009. The Bellkor solution to the Netflix grand prize. Netflix Prize Documentation, 81: 1-10.

Krieger, LM,2005。斯坦福因谷歌股票获利3.36亿美元。 《水星报》, 12月1日。

Krieger, LM, 2005. Stanford earns $336 million off Google stock. The Mercury News, December 1.

Krizhevsky, A.、Sutskever, I. 和 Hinton, G.E.,2012 年。基于深度卷积神经网络的 ImageNet 分类。收录于:C. Burges 编,《 2013 年第 27 届神经信息处理系统年会论文集》 。2013年 12 月 5-10 日,内华达州太浩湖。纽约州红钩区,Curran 出版社,第 1097-1105 页。

Krizhevsky, A., Sutskever, I., and Hinton, G.E., 2012. ImageNet classification with deep convolutional neural networks. In: C. Burges, ed., Proceedings of the 27th Annual Conference on Neural Information Processing Systems 2013. December 5-10, 2013, Lake Tahoe, NV. Red Hook, NY Curran, pg. 1097-1105.

LS,2015年。《中本聪是谁?》《经济学人》, 11月2日。

LS, 2015. Who is Satoshi Nakamoto? The Economist, November 2.

Lally, A.、Prager, M.、McCord, M.C.、Boguraev, B.K.、Patwardhan, S.、Fan, J.、Fodor, P. 和 Carroll J.C.,2012 年。《问题分析:Watson 如何解读线索》。《IBM 研究与开发杂志》, 56(3.4),第 2 页:1-14。

Lally, A., Prager, M., McCord, M.C., Boguraev, B.K., Patwardhan, S., Fan, J., Fodor, P., and Carroll J.C., 2012. Question analysis: How Watson reads a clue. IBM Journal of Research and Development, 56(3.4), pg. 2: 1-14.

Lazer, D. 和 Kennedy, R.,2015。“我们能从谷歌流感趋势的惨败中学到什么?”。《连线》,10月1日。

Lazer, D. and Kennedy, R., 2015. What we can learn from the epic failure of Google flu trends. Wired , October 1.

Lazer, D., Kennedy, R., King, G., Vespignani, A.,2014.“谷歌流感的寓言:大数据分析中的陷阱”。《科学》, 343(6176),第 1203-1205 页。

Lazer, D., Kennedy, R., King, G., Vespignani, A., 2014. The parable of Google Flu: Traps in big data analysis. Science, 343(6176), pg. 1203-1205.

LeCun, Y, Bengio, Y. 和 Hinton, G.,2015 年,《深度学习》,《自然》 521(7553),第 436-444 页。

LeCun, Y, Bengio, Y., and Hinton, G., 2015. Deep learning. Nature. 521(7553), pg. 436-444.

Lecun, Y.,1985. 《不对称程序》。载于:《Cognitiva 85会议论文集》。 法国巴黎。1985年6月4日至7日,第599-604页。

Lecun, Y., 1985. An asymmetry procedure. In: Proceedings of Cognitiva 85. Paris, France. June 4-7, 1985, pg. 599-604.

LeCun, Y., Boser, B., Denker, J.S., Henderson, D., Howard, R.E., Hubbard,W., 以及 Jackel, L.D., 1989. 反向传播应用于手写邮政编码识别. 神经计算, 1(4), pg. 541-551.

LeCun, Y., Boser, B., Denker, J.S., Henderson, D., Howard, R.E., Hubbard,W., and Jackel, L.D., 1989. Backpropagation applied to handwritten zip code recognition. Neural Computation, 1(4), pg. 541-551.

Lee, J.,1998。理查德·韦斯利·汉明:1915-1998。IEEE计算史年鉴,20(2),第 60-62 页。

Lee, J., 1998. Richard Wesley Hamming: 1915-1998. IEEE Annals of the History of Computing , 20(2), pg. 60-62.

Leiner, BM, Cerf, VG, Clark, DD, Kahn, RE, Kleinrock., L., Lynch, DC, Postel, J., Robers, LG, 以及 Wolff, S., 2009.《互联网简史》。ACMSIGCOMM 《计算机通信评论》, 39(5),第 22-31 页。

Leiner, BM, Cerf, VG, Clark, DD, Kahn, RE, Kleinrock., L., Lynch, DC, Postel, J., Robers, LG, and Wolff, S., 2009. A brief history of the Internet. ACMSIGCOMM Computer Communication Review, 39(5), pg. 22-31.

LeVeque, WJ 和 Smith, DE,2019。《数字和数值系统》。载于《大英百科全书》 [在线版]。https ://www.britannica.com/science/numeral。(访问日期:2020 年 5 月 19 日)。

LeVeque, WJ and Smith, DE, 2019. Numerals and numerical systems. In Encyclopaedia Britannica [online]. https://www.britannica.com/science/numeral . (Accessed May 19, 2020).

Levy, S.,1999。《公开的秘密》。《连线》, 7(4)。

Levy, S., 1999. The open secret. Wired, 7(4).

Lewis-Kraus, G.,2016.《伟大的人工智能觉醒》。 《纽约时报》, 12月20日。

Lewis-Kraus, G., 2016. The great AI awakening. The New York Times, December 20.

Licklider, JCR 和 Taylor, RW, 1968.《计算机作为一种通信设备》。《科学与技术》, 76(2),第 1-3 页。

Licklider, JCR and Taylor, RW, 1968.The computer as a communication device. Science and Technology, 76(2), pg. 1-3.

Licklider, JCR, 1960. 人机共生。IRE电子学人为因素汇刊, 1(1),第 4-11 页。

Licklider, JCR, 1960. Man-computer symbiosis. IRE Transactions on Human Factors in Electronics, 1(1), pg. 4-11.

Licklider,JCR,1963年。 《星际计算机网络成员及附属机构备忘录》。 技术报告,高级研究计划局,4月23日。

Licklider, JCR, 1963. Memorandum for members and affiliates of the intergalactic computer network. Technical report, Advanced Research Projects Agency, April 23.

Licklider, J.C.R.,1965。 《未来的图书馆》。 马萨诸塞州剑桥:麻省理工学院出版社。

Licklider, J.C.R., 1965. Libraries of the Future. Cambridge, MA: The MIT Press.

Lieberman, H.,2011. 《Watson 挑战 Jeopardy》,第三部分。《麻省理工科技评论》 [在线]。https ://www.technologyreview.com/s/422763/watson-onjeopardy-part-3/。(访问日期:2019 年 9 月 15 日)。

Lieberman, H., 2011. Watson on Jeopardy, part 3. MIT Technology Review [online]. https://www.technologyreview.com/s/422763/watson-onjeopardy-part-3/ . (Accessed 15 September 2019).

Linden, G., Smith, B., 和 York, J.,2003 年。Amazon.com推荐。IEEE互联网计算, 7(1),第 76-80 页。

Linden, G., Smith, B., and York, J., 2003. Amazon.com recommendations. IEEE Internet Computing, 7(1), pg. 76-80.

Lohn, JD, Linden, DS, Hornby, GS, Kraus, WF,2004。用于NASA空间技术5号任务的X波段天线的演进设计。刊于:2004年IEEE天线与传播学会研讨会论文集,第3卷。加州蒙特雷,6月20-25日,第2313-2316页。纽约:IEEE。

Lohn, JD, Linden, DS, Hornby, GS, Kraus, WF, 2004. Evolutionary design of an X-band antenna for NASA's space technology 5 mission. In: Proceedings of the IEEE Antennas and Propagation Society Symposium 2004, volume 3. Monterey, CA, June 20-25, pg. 2313-2316. New York: IEEE.

Lohr, S.,2016. 人工智能的前景正在一点点展现。《纽约时报》, 2月29日。(2020年5月19日访问)

Lohr, S., 2016. The promise of artificial intelligence unfolds in small steps. The New York Times, February 29. (Accessed May 19, 2020).

伦敦,罗德岛州,2013年。谁获得了第一个计算机科学博士学位? ACM通讯:blog@CACM, 一月。

London, RL, 2013. Who earned first computer science Ph.D.? Communications of the ACM: blog@CACM, January.

Lorenz, EN, 1963.确定性非周期流。《大气科学杂志》, 20(2),第130-141页。

Lorenz, EN, 1963. Deterministic nonperiodic flow. Journal of the Atmospheric Sciences, 20(2), pg. 130-141.

Lorenz, EN,1995。 《混沌的本质》。西雅图:华盛顿大学出版社。

Lorenz, EN, 1995. The Essence of Chaos. Seattle: University of Washington Press.

Lovelace, B.,2018年。巴菲特称加密货币几乎肯定会以悲剧收场。CNBC [在线]。https ://www.cnbc.com/2018/01/10/buffettsays-cryptocurrencies-will-almost-certainly-end-badly.html。(访问日期:2020年5月19日)。

Lovelace, B., 2018. Buffett says cryptocurrencies will almost certainly end badly. CNBC [online]. https://www.cnbc.com/2018/01/10/buffettsays-cryptocurrencies-will-almost-certainly-end-badly.html . (Accessed May 19, 2020).

Lynch, P. 和 Lynch, O.,2008 年。PHONIAC 预报。天气, 63(11),第 324-326 页。

Lynch, P. and Lynch, O., 2008. Forecasts by PHONIAC. Weather, 63(11), pg. 324-326.

Lynch, P.,2008. 计算机天气预报和气候建模的起源。 《计算物理杂志》, 227(7),第 3431-3444 页。

Lynch, P., 2008. The origins of computer weather prediction and climate modeling. Journal of Computational Physics, 227(7), pg. 3431-3444.

Mackay, J.S.,1884。π 的助记符 1 πe《爱丁堡数学学会会刊》,第 3 卷,第 103-107 页。

Mackay, J.S., 1884. Mnemonics for π , 1 π , e . Proceedings of the Edinburgh Mathematical Society, 3, pg. 103-107.

MacKenzie, I.、Meyer, C. 和 Noble, S.,2013 年。《 零售商如何跟上消费者的步伐》。技术报告,麦肯锡公司,十月。

MacKenzie, I., Meyer, C., and Noble, S., 2013. How retailers can keep up with consumers. Technical report, McKinsey and Company, October.

Madrigal,AC,2017。《西洋跳棋是如何破解的》。《大西洋月刊》, 7月19日。

Madrigal, AC, 2017. How checkers was solved. The Atlantic, July 19.

Manufacturing Intellect,2001年。杰夫·贝佐斯关于创办亚马逊的访谈。YouTube [在线]。https ://youtu.be/p7FgXSoqfnI。(访问日期:2020年5月19日)。

Manufacturing Intellect, 2001. Jeff Bezos interview on starting Amazon. YouTube [online]. https://youtu.be/p7FgXSoqfnI . (Accessed May 19, 2020).

Markoff, J.,1999年。互联网先驱思考下一场革命。《纽约时报》, 12月20日。

Markoff, J., 1999.An Internet pioneer ponders the next revolution. The New York Times, December 20.

Markoff, J.,2011. 计算机在《危险边缘》中获胜:这并非小事。《纽约时报》, 2月16日。

Markoff, J., 2011. Computer wins on jeopardy: Trivial, it's not. New York Times, February 16.

Martin, CD, 1995. ENIAC:震惊世界的新闻发布会。IEEE技术与社会杂志, 14(4),第3-10页。

Martin, CD, 1995. ENIAC: Press conference that shook the world. IEEE Technology and Society Magazine, 14(4), pg. 3-10.

Mauchly, JW,1982. 高速真空管器件在计算中的应用。收录于:B. Randall 编, 《数字计算机的起源》。 柏林:Springer,第 329-333 页。

Mauchly, JW, 1982. The use of high speed vacuum tube devices for calculating. In: B. Randall, ed., The Origins of Digital Computers. Berlin: Springer, pg. 329-333.

McCarthy, J. 和 Feigenbaum, E.A.,1990 年。悼念 Arthur Samuel:机器学习的先驱。 《AI Magazine》, 11(3),第 10 页。

McCarthy, J. and Feigenbaum, E.A., 1990. In memoriam: Arthur Samuel: Pioneer in machine learning. AI Magazine, 11(3), p. 10.

McCarthy, J., Minsky, M.L., Rochester, N., 和 Shannon, C.E., 2006. 达特茅斯人工智能夏季研究项目提案, 1955 年 8 月 31 日. AI Magazine, 27(4), 第 12-14 页。

McCarthy, J., Minsky, M.L., Rochester, N., and Shannon, C.E., 2006. A proposal for the Dartmouth summer research project on artificial intelligence, August 31, 1955. AI Magazine, 27(4), pg. 12-14.

McCorduck, P.,2004.《 会思考的机器》。马萨诸塞州纳蒂克:AK Peters。

McCorduck, P., 2004. Machines Who Think. Natick, MA: AK Peters.

McCulloch, WS 和 Pitts, W.,1943. 神经活动中内在观念的逻辑演算。《数学生物物理学通报》, 5(4),第115-133页。

McCulloch, WS and Pitts, W., 1943. A logical calculus of the ideas immanent in nervous activity. The Bulletin of Mathematical Biophysics, 5(4), pg. 115-133.

McCullough, B.,2015. 亚马逊早期工程师兼推荐引擎联合开发者 Greg Linden。互联网历史播客 [在线]。http: //www.internethistorypodcast.com/2015/04/early-amazonengineer-and-co-developer-of-the-recommendation-engine-greglinden/#tabpanel6。(访问日期:2019 年 2 月 15 日)。

McCullough, B., 2015. Early Amazon engineer and co-developer of the recommendation engine, Greg Linden. Internet History Podcast [online]. http://www.internethistorypodcast.com/2015/04/early-amazonengineer-and-co-developer-of-the-recommendation-engine-greglinden/#tabpanel6 . (Accessed February 15, 2019).

McJones, P.,2008. Robert (Bob) W. Taylor 口述历史。技术报告,计算机历史博物馆。

McJones, P., 2008. Oral history of Robert (Bob) W. Taylor. Technical report, Computer History Museum.

McQuillan, J.,Richer, I. 和 Rosen, E.,1980 年。ARPANET 的新路由算法。IEEE 通信学报, 28(5),第 711-719 页。

McQuillan, J., Richer, I., and Rosen, E., 1980. The new routing algorithm for the ARPANET. IEEE Transactions on Communications, 28(5), pg. 711-719.

梅纳布雷亚,L.F. 和金,A.,洛夫莱斯伯爵夫人,1843年。查尔斯·巴贝奇发明的分析机草图。《科学回忆录》,第3卷,第666-731页。

Menabrea, L.F. and King, A., Countess of Lovelace, 1843. Sketch of the analytical engine invented by Charles Babbage. Scientific Memoirs, 3, pg. 666-731.

Merkle, RC, 1978. 在不安全信道上进行安全通信。ACM通讯, 21(4),第294-299页。

Merkle, RC, 1978. Secure communications over insecure channels. Communications of the ACM, 21(4), pg. 294-299.

Metropolis, N. 和 Ulam, S.,1949。蒙特卡罗方法。《美国统计协会杂志》, 44(247),第 335-341 页。

Metropolis, N. and Ulam, S., 1949. The Monte Carlo method. Journal of the American Statistical Association, 44(247), pg. 335-341.

Metropolis, Nicholas. 蒙特卡罗方法的起源。 洛斯阿拉莫斯科学,15(584),125-130页。

Metropolis, Nicholas. The beginning of the Monte Carlo method. Los Alamos Science , 15(584), pg. 125-130.

Metz, C.,2007。《面包车如何发明了互联网》。The Register [在线]。https ://www.theregister.co.uk/2007/11/12/thirtieth_anniversary_of_first_internet_connection/。(访问日期:2020年5月19日)。

Metz, C., 2007. How a bread truck invented the Internet. The Register [online]. https://www.theregister.co.uk/2007/11/12/thirtieth_anniversary_of_first_internet_connection/ . (Accessed 19 May 2020).

Metz, C.,2012。鲍勃·卡恩、面包车和互联网的首次交流。《连线》,8月13日。

Metz, C., 2012. Bob Kahn, the bread truck, and the Internet's first communion. Wired , August 13.

Metz, C.,2016. 观看谷歌人工智能围棋的悲与美。 《连线》, 3 月 11 日。

Metz, C., 2016. The sadness and beauty of watching Google's AI play Go. Wired, March 11.

Minsky, M. 和 Papert, S.,1969。感知器。马萨诸塞州剑桥:麻省理工学院出版社。

Minsky, M. and Papert, S., 1969. Perceptrons. Cambridge, MA: The MIT Press.

Minsky, M.,1952。基于强化概率模型的神经模拟计算器。技术报告,哈佛大学心理实验室,马萨诸塞州剑桥。

Minsky, M., 1952. A neural-analogue calculator based upon a probability model of reinforcement . Technical report, Harvard University Psychological Laboratories, Cambridge, Massachusetts.

Mnih, V. 等,2015. 通过深度强化学习实现人类水平的控制。《自然》, 518(7540),第 529 页。

Mnih, V., et al., 2015. Human-level control through deep reinforcement learning. Nature, 518(7540), p. 529.

Morris, DZ, 2016. 谷歌围棋计算机击败人类。《财富》杂志, 3月12日。

Morris, DZ, 2016. Google's Go computer beats top-ranked human. Fortune, March 12.

Moyer, C.,2016. 谷歌 AlphaGo 如何击败围棋世界冠军。《大西洋月刊》, 3 月。

Moyer, C., 2016. How Google's AlphaGo beat a Go world champion. The Atlantic, March.

Mullin, FJ 和 Stalnaker, JM,1951。实习任命的匹配计划。 《学术医学》, 26(5),第 341-345 页。

Mullin, FJ and Stalnaker, JM, 1951. The matching plan for internship appointment. Academic Medicine, 26(5), pg. 341-345.

Nakamoto, S.,2008。比特币:一种点对点电子现金系统。工作论文。

Nakamoto, S., 2008. Bitcoin: A peer-to-peer electronic cash system. Working Paper.

美国国家物理实验室,2012年。“驾驶计算:艾伦·图灵的自动计算引擎”。YouTube [在线]。https ://www.youtube.com/watch?v =cEQ6cnwaY_s。(访问日期:2019年10月27日)。

National Physical Laboratory, 2012. Piloting Computing: Alan Turing's Automatic Computing Engine. YouTube [online]. https://www.youtube.com/watch?v=cEQ6cnwaY_s . (Accessed October 27, 2019).

Nemiroff, R. 和 Bonnell J.,1994 年。二千万位以内的平方根。https ://apod.nasa.gov/htmltest/gifcity/sqrt2.10mil。(访问日期:2020 年 5 月 19 日)。Netflix,2016 年。Netflix 奖。http ://www.netflixprize.com/。(访问日期:2020 年 5 月 19 日)。

Nemiroff, R. and Bonnell J., 1994. The square root of two to 10 million digits. https://apod.nasa.gov/htmltest/gifcity/sqrt2.10mil . (Accessed 19 May 2020). Netflix, 2016. Netflix prize. http://www.netflixprize.com/ . (Accessed 19 May 2020).

Newell, A. 和 Simon, H.,1956。逻辑理论机器:一个复杂的信息处理系统。IRE信息理论汇刊。2(3),第 61-79 页。

Newell, A. and Simon, H., 1956. The logic theory machine: A complex information processing system. IRE Transactions on Information Theory . 2(3), pg. 61-79.

Newell, A. 和 Simon, H.,1972。 《人类问题解决》。 纽约:Prentice Hall。Newell, A.、Shaw, JC 和 Simon, H.A.,1959。《通用问题解决程序报告》。载于《国际信息处理会议论文集》。巴黎:联合国教科文组织,第 256-264 页。

Newell, A. and Simon, H., 1972. Human Problem Solving. New York: Prentice Hall. Newell, A., Shaw, JC, and Simon, H.A., 1959. Report on a general problem solving program. In Proceedings of the International Conference on Information Processing. Paris: UNESCO, pg. 256-264.

Ng., A.,2018。深度学习英雄:吴恩达访谈 Yann LeCun。YouTube [在线]。https ://www.youtube.com/watch?v =Svb1c6AkRzE。(访问日期:2019 年 8 月 14 日)。

Ng., A., 2018. Heroes of Deep Learning: Andrew Ng interviews Yann LeCun. YouTube [online]. https://www.youtube.com/watch?v=Svb1c6AkRzE . (Accessed August 14, 2019).

Nilsson, N.J.,2009. 《人工智能的探索》。剑桥:剑桥大学出版社。

Nilsson, N.J., 2009. The Quest for Artificial Intelligence. Cambridge: Cambridge University Press.

国家住院医师计划(NRMP)。国家住院医师匹配计划。http ://www.nrmp.org。(2020年5月19日访问)。

NRMP. National resident matching program. http://www.nrmp.org . (Accessed May 19, 2020).

Olazaran, M.,1996. “感知器争议官方历史的社会学研究”。 《科学社会研究》, 26(3),第 611-659 页。

Olazaran, M., 1996. A sociological study of the official history of the Perceptrons controversy. Social Studies of Science, 26(3), pg. 611-659.

Page, L., Brin, S., Motwani, R., 和 Winograd, T.,1999 年。PageRank引用排名:为网络带来秩序。技术报告 1999-66,斯坦福信息实验室,11 月。

Page, L., Brin, S., Motwani, R., and Winograd, T., 1999. The PageRank citation ranking: Bringing order to the web. Technical Report 1999-66, Stanford InfoLab, November.

Palmer, J.,2010. 圆周率记录被打破,团队找到了千万亿分之一的数字 – BBC 新闻 [在线]。https ://www.bbc.com/news/technology-11313194,2010年 9 月 16 日。(2019 年 1 月 6 日访问)。

Palmer, J., 2010. Pi record smashed as team finds two-quadrillionth digit – BBC News [online]. https://www.bbc.com/news/technology-11313194 , 16 September 2010. (Accessed 6 January 2019).

Parker, DB, 1985.学习逻辑:用硅铸造人脑皮层。技术报告 TR-47,麻省理工学院,马萨诸塞州剑桥。

Parker, DB, 1985. Learning logic: Casting the cortex of the human brain in silicon. Technical Report TR-47, MIT, Cambridge, MA.

Piotte, M. 和 Chabbert, M.,2009。Netflix大奖的实用理论解决方案。技术报告,Netflix。

Piotte, M. and Chabbert, M., 2009. The pragmatic theory solution to the Netflix grand prize. Technical report, Netflix.

Platzman, GW,1979。1950年的ENIAC计算:数值天气预报的门户。 《美国气象学会公报》, 60(4),第302-312页。

Platzman, GW, 1979. The ENIAC computations of 1950: Gateway to numerical weather prediction. Bulletin of the American Meteorological Society, 60(4), pg. 302-312.

Poundstone, W.,1992。《囚徒困境》。纽约:Doubleday。

Poundstone, W., 1992. Prisoner's Dilemma. New York: Doubleday.

Rawlinson, H.C.,1846年。《贝希斯敦波斯楔形文字铭文的解密与翻译》。《英国及爱尔兰皇家亚洲学会会刊》,第10卷,第i-349页。

Rawlinson, H.C., 1846. The Persian cuneiform inscription at Behistun, decyphered and translated. Journal of the Royal Asiatic Society of Great Britain And Ireland, 10, pg. i-349.

Rivest, R.L., Shamir, A., Adleman, L.,1978. 一种获取数字签名和公钥密码体制的方法。ACM通讯, 21(2),第120-126页。

Rivest, R.L., Shamir, A., Adleman, L., 1978. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2), pg. 120-126.

Roberts, S.,2017。克里斯托弗·斯特雷奇的20世纪50年代爱情机器。 《纽约客》, 2月14日。

Roberts, S., 2017. Christopher Strachey's nineteen-fifties love machine. The New Yorker, February 14.

Rockmore, DN,2000。FFT:一个老少皆宜的算法。 《科学与工程计算》, 2(1),第 60-64 页。

Rockmore, DN, 2000. The FFT: An algorithm the whole family can use. Computing in Science & Engineering, 2(1), pg. 60-64.

Rosenblatt, F.,1958. 感知器:大脑信息存储和组织的概率模型。《心理学评论》, 65(6),第386页。

Rosenblatt, F., 1958. The Perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6), pg. 386.

Rosenblatt, F.,1961. 神经动力学原理、感知器和脑机制理论。技术报告,DTIC文件。

Rosenblatt, F., 1961. Principles of neurodynamics, perceptrons and the theory of brain mechanisms . Technical report, DTIC Document.

Roth, AE, 1984. 实习医生和住院医生劳动力市场的演变:博弈论案例研究。《政治经济学杂志》, 92,第991-1016页。

Roth, AE, 1984. The evolution of the labor market for medical interns and residents: A case study in game theory. The Journal of Political Economy, 92, pg. 991-1016.

Roth, AE, 2003.住院医师匹配的起源、历史和设计。《美国医学会杂志》, 289(7),第 909-912 页。

Roth, AE, 2003. The origins, history, and design of the resident match. Journal of the American Medical Association, 289(7), pg. 909-912.

Rumelhart, DE, Hinton, GE, 和 Williams, RJ, 1986. 通过反向传播误差学习表征。《自然》, 323,第 533-536 页。

Rumelhart, DE, Hinton, GE, and Williams, RJ, 1986. Learning representations by back-propagating errors. Nature, 323, pg. 533-536.

Samuel, AL, 1959. 使用西洋跳棋进行机器学习的一些研究。IBM研究与开发杂志, 3(3),第 210-29 页。

Samuel, AL, 1959. Some studies in machine learning using the game of checkers. IBM Journal of Research and Development, 3(3), pg. 210-29.

Samuel, AL, 1967. 使用西洋跳棋进行机器学习的一些研究。ii. IBM 研究与开发杂志, 11(6),第 601-617 页。

Samuel, AL, 1967. Some studies in machine learning using the game of checkers. ii. IBM Journal of Research and Development, 11(6), pg. 601-617.

Savage, N.,2019. 亲身体验谷歌量子计算机。 《科学美国人》, 10月24日。(访问日期:2020年5月19日)。

Savage, N., 2019. Hands-on with Google's quantum computer. Scientific American, October 24. (Accessed May 19, 2020).

Schaeffer, J.,2008. 领先一步:计算机在西洋跳棋中的完美表现。纽约:Springer。

Schaeffer, J., 2008. One Jump Ahead: Computer Perfection at Checkers. New York: Springer.

Schrijver, A.,2005. 组合优化的历史(至1960年)。收录于:K. Aardal、GL Nemhauser 和 R. Weismantel 编,《 离散优化》,第12卷。阿姆斯特丹:Elsevier,第1-68页。

Schrijver, A., 2005. On the history of combinatorial optimization (till 1960). In: K. Aardal, GL Nemhauser, R. Weismantel, eds., Discrete optimization, vol. 12. Amsterdam: Elsevier, pg. 1-68.

Scott, N.R.,1996。 《从早年到20世纪60年代:CSE@50的计算》。技术报告,密歇根大学。

Scott, N.R., 1996. The early years through the 1960's: Computing at the CSE@50. Technical report, University of Michigan.

Sebo, A. 和 Vygen, J. 2012. 用更友善的耳朵进行更短的旅行。arXiv 预印本 arXiv:1201.1870。

Sebo, A. and Vygen, J. 2012. Shorter tours by nicer ears. arXiv preprint arXiv:1201.1870.

Shannon, CE, 1950. 编写计算机下棋程序。 《哲学杂志》, 41(314),第256-275页。

Shannon, CE, 1950. Programming a computer for playing chess. Philosophical Magazine, 41(314), pg. 256-275.

Shor, PW, 1982. 量子计算机上素因数分解和离散对数的多项式时间算法。SIAM Review, 41(2),第 303-332 页。

Shor, PW, 1982. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM Review, 41(2), pg. 303-332.

Silver, D. 等,2016. 利用深度神经网络和树形搜索掌握围棋。 《自然》, 529(7587),第 484-489 页。

Silver, D., et al., 2016. Mastering the game of Go with deep neural networks and tree search. Nature, 529(7587), pg. 484-489.

Silver, D. 等,2017. 无需人类知识即可掌握围棋游戏。《自然》, 550(7676),第 354-359 页。

Silver, D., et al., 2017. Mastering the game of Go without human knowledge. Nature, 550(7676), pg. 354-359.

Silver, D. 等人,2018 年。一种通过自我对弈掌握国际象棋、将棋和围棋的通用强化学习算法。Science 362(6419),第 1140-1144 页。

Silver, D., et al., 2018. A general reinforcement learning algorithm that masters Chess, Shogi, and Go through self-play. Science, 362(6419), pg. 1140-1144.

Simon, H.A.,1998。Allen Newell:1927-1992。IEEE计算史年鉴, 20(2),第 63-76 页。

Simon, H.A., 1998. Allen Newell: 1927-1992. IEEE Annals of the History of Computing, 20(2), pg. 63-76.

Singh, S.,1999。 《密码书:密码与破译秘史》。 伦敦:Fourth Estate。

Singh, S., 1999. The Code Book: The Secret History of Codes & Code-breaking. London: Fourth Estate.

Smith, B. 和 Linden, G.,2017。Amazon.com 推荐系统的二十年 。IEEE互联网计算, 21(3),第 12-18 页。

Smith, B. and Linden, G., 2017. Two decades of recommender systems at Amazon.com . IEEE Internet Computing, 21(3), pg. 12-18.

Stern, N.,1977年。 《J. Presper Eckert访谈》。明尼苏达大学查尔斯·巴贝奇研究所。

Stern, N., 1977. An Interview with J. Presper Eckert. Charles Babbage Institute, University of Minnesota.

Stone, B.,2014。“万货商店:杰夫·贝佐斯与亚马逊时代”。纽约:Corgi出版社。

Stone, B., 2014. The Everything Store: Jeff Bezos and the Age of Amazon. New York: Corgi.

Strachey, C.,1954. “思考”机器。《邂逅》 III,十月。

Strachey, C., 1954. The 'thinking' machine. Encounter, III, October.

Strachey, C.,1965. 一个不可能的程序。《计算机杂志》, 7(4),第 313 页。

Strachey, C., 1965. An impossible program. The Computer Journal, 7(4), p. 313.

Strachey, CS, 1952. 逻辑或非数学程序。载于1952年ACM全国会议论文集,纽约:ACM,第46-49页。

Strachey, CS, 1952. Logical or non-mathematical programs. In Proceedings of the 1952 ACM National Meeting, New York: ACM, pg. 46-49.

Suetonius, G.,2009。《凯撒传》。牛津:牛津大学出版社。

Suetonius, G., 2009. Lives of the Caesars. Oxford: Oxford University Press.

Sutskever, I.、Vinyals, O. 和 Le, Q.V.,2014. 利用神经网络进行序列到序列学习。收录于:Z. Ghahramani、M. Welling、C. Cortes、ND Lawrence 和 KQ Weinberger 编, 第 28 届神经信息处理系统年会论文集(2014 年)。2014 年 12 月 8-13 日,加拿大蒙特利尔。纽约州红钩区 Curran 出版社,第 3104-3112 页。

Sutskever, I., Vinyals, O., and Le, Q.V., 2014. Sequence to sequence learning with neural networks. In: Z. Ghahramani, M. Welling, C. Cortes, ND Lawrence, and KQ Weinberger, eds., Proceedings of the 28th Annual Conference on Neural Information Processing Systems 2014. December 8-13, 2014, Montreal, Canada. Red Hook, NY Curran, pg. 3104-3112.

Swade,D.,2000。《齿轮大脑》。伦敦:Little,Brown。

Swade, D., 2000. The Cogwheel Brain. London: Little, Brown.

大英百科全书编辑部,2020年。花剌子模。载于大英百科全书[在线]。https ://www.britannica.com/biography/al-Khwarizmi。(访问日期:2020年5月20日)。

The Editors of Encyclopaedia Britannica, 2020. Al-Khwarizm. In Encyclopaedia Britannica [online]. https://www.britannica.com/biography/al-Khwarizmi . (Accessed May 20, 2020).

大英百科全书编辑部,2020年。法国大革命。载于大英百科全书[在线]。https ://www.britannica.com/event/French-Revolution。(访问日期:2020年5月19日)。

The Editors of Encyclopaedia Britannica, 2020. French revolution. In Encyclopaedia Britannica [online]. https://www.britannica.com/event/French-Revolution . (Accessed May 19, 2020).

汤普森,C.,2005。《信息时代的黑暗英雄:最初的电脑怪杰》。 《纽约时报》,3月20日。

Thompson, C., 2005. Dark hero of the information age: The original computer geek. The New York Times , March 20.

Thompson, C.,2008。如果你喜欢这篇文章,那你也一定会喜欢那篇文章。《纽约时报》, 11月21日。

Thompson, C., 2008. If you liked this, you're sure to love that. The New York Times, November 21.

Thorpe, S., Fize, D., 和 Marlot, C.,1996. 人类视觉系统的处理速度。 《自然》, 381(6582),第 520-522 页。

Thorpe, S., Fize, D., and Marlot, C., 1996. Speed ​​of processing in the human visual system. Nature, 381(6582), pg. 520-522.

图灵,AM,1937。《论可计算数及其在判定问题中的应用》。《伦敦数学学会会刊》, s2-42(1),第230-265页。

Turing, AM, 1937. On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, s2-42(1), pg. 230-265.

Turing, A.M.,1950。计算机器与智能。 《Mind》, 59(236),第433-460页。

Turing, A.M., 1950. Computing machinery and intelligence. Mind, 59(236), pg. 433-460.

Turing, S.,1959。艾伦·M·图灵。剑桥:W. Heffer & Sons, Ltd.

Turing, S., 1959. Alan M. Turing. Cambridge: W. Heffer & Sons, Ltd.

Ulam, S., 1958. 约翰·冯·诺依曼 1903-1957.美国数学学会公报, 64(3),1-49页。

Ulam, S., 1958. John von Neumann 1903-1957. Bulletin of the American Mathematical Society, 64(3), pg. 1-49.

Van Buskirk, E.,2009。《Netflix奖是如何得来的》。《连线》, 9月22日。

Van Buskirk, E., 2009. How the Netflix prize was won. Wired, September 22.

Vasbinder, JW,2014。“啊哈…真有趣!:约翰·H·霍兰德,85岁。”新加坡:世界科学出版社。

Vasbinder, JW, 2014. Aha… That is Interesting!: John H. Holland, 85 years young. Singapore: World Scientific.

Vincent, J.,2019. 2018 年图灵奖:诺贝尔计算奖授予“人工智能教父”。The Verge [在线]。https ://www.theverge.com/2019/3/27/18280665/ai-godfathers-turing-award-2018-yoshua-bengio-geoffreyhinton-yann-lecun。(访问日期:2020 年 5 月 19 日)。

Vincent, J., 2019. Turing Award 2018: Nobel prize of computing given to 'godfathers of AI'. The Verge [online]. https://www.theverge.com/2019/3/27/18280665/ai-godfathers-turing-award-2018-yoshua-bengio-geoffreyhinton-yann-lecun . (Accessed May 19, 2020).

Vint, C. 和 Kahn, R.,1974 年。分组网络互连协议。IEEE通信学报, 22(5),第 637-648 页。

Vint, C. and Kahn, R., 1974. A protocol for packet network interconnection. IEEE Transactions of Communications, 22(5), pg. 637-648.

Vise, D.A.,2005。《谷歌的故事》。纽约:Macmillian。

Vise, D.A., 2005. The Google Story. New York: Macmillian.

冯·诺依曼,J.,1993。EDVAC报告初稿。IEEE计算史年鉴, 15(4),第27-75页。

Von Neumann, J., 1993. First draft of a report on the EDVAC. IEEE Annals of the History of Computing, 15(4), pg. 27-75.

Waldrop, M.M.,2001. 《梦想机器》。 伦敦:维京企鹅出版社。

Waldrop, M.M., 2001. The Dream Machine. London: Viking Penguin.

Webster, I.,2020年。比特币历史价格。in2013dollars.com [ 在线]。http ://www.in2013dollars.com/bitcoin-price。(访问日期:2020年6月22日)。

Webster, I., 2020. Bitcoin historical prices. in2013 dollars.com [online]. http://www.in2013dollars.com/bitcoin-price . (Accessed 22 June 2020).

Werbos, PJ,1974年。《 超越回归:行为科学预测与分析的新工具》。博士。哈佛大学。

Werbos, PJ, 1974. Beyond regression: New tools for prediction and analysis in the behavioral sciences . Ph.D. Harvard University.

Werbos, PJ,1990。“时间反向传播:它的作用和实现方法”。IEEE 论文集, 78(10),1550-1560 页。

Werbos, PJ, 1990. Backpropagation through time: What it does and how to do it. Proceedings of the IEEE, 78(10), pg. 1550-1560.

Werbos, P.J.,1994. 《反向传播的根源》,第 1 卷。牛津:John Wiley & Sons。

Werbos, P.J., 1994. The Roots of Backpropagation, volume 1. Oxford: John Wiley & Sons.

Werbos, PJ,2006. AD 和神经网络中的后向微分:过去的联系与新的机遇。收录于:HM Bücker、G. Corliss、P. Hovland、U. Naumann 和 B. Norris 编,《 自动微分:应用、理论与实现》。柏林:Springer,第 15-34 页。

Werbos, PJ, 2006. Backwards differentiation in AD and neural nets: Past links and new opportunities. In: HM Bücker, G. Corliss, P. Hovland, U. Naumann, and B. Norris, eds., Automatic differentiation: Applications, theory, and implementations. Berlin: Springer, pg. 15-34.

怀特黑德,A.N. 和罗素,B.,1910-1913。 《数学原理》。 剑桥:剑桥大学出版社。

Whitehead, A.N. and Russell, B., 1910-1913. Principia Mathematica. Cambridge: Cambridge University Press.

Widman, J.,2011 年。EdgeRank 介绍:Facebook 新闻推送算法指南。http ://edgerank.net。(访问日期:2020 年 5 月 19 日)。

Widman, J., 2011. Presenting EdgeRank: A guide to Facebook's Newsfeed algorithm. http://edgerank.net . (Accessed May 19, 2020).

Willmott, D.,1999。《百强网站》。《PC Magazine》, 2月9日。

Willmott, D., 1999. The top 100 web sites. PC Magazine, February 9.

Wolter, J.,2013. 坎菲尔德纸牌游戏的实验分析。http ://politaire.com/article/canfield.html。(2020 年 5 月 20 日访问)。

Wolter, J., 2013. Experimental analysis of Canfield solitaire. http://politaire.com/article/canfield.html . (Accessed May 20, 2020).

Wood, G.,2016. AlphaGo和李世石两步棋重新定义了未来。 《连线》, 3月16日。

Wood, G., 2016. In two moves, AlphaGo and Lee Sedol redefined the future. Wired, March 16.

Wu, Y, 等人,2016 年。谷歌的神经机器翻译系统:弥合人机翻译之间的差距。arXiv预印本 arXiv: 1609.08144。

Wu, Y, et al., 2016. Google's neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint arXiv: 1609.08144.

Zimmer, B.,2011. 是时候迎接我们的新计算机霸主了吗?《大西洋月刊》, 2月17日。

Zimmer, B., 2011. Is it time to welcome our new computer overlords? The Atlantic, February 17.

权限

Permissions

第一章和第四引文:© 牛津大学出版社。由牛津大学出版社提供。

Chapter 1 and 4 quotes: © Oxford University Press. Courtesy of Oxford University Press.

水库算法:经计算机协会许可授予转载权。

Water Reservoir Algorithm: Reprint privilege granted by permission of the Association for Computing Machinery.

斯坦尼斯拉夫·乌拉姆:洛斯阿拉莫斯国家实验室。除非另有说明,本信息由洛斯阿拉莫斯国家安全有限责任公司(LANS)的一名或多名员工撰写。LANS是洛斯阿拉莫斯国家实验室的运营商,与美国能源部签订了编号为DE-AC52-06NA25396的合同。美国政府有权使用、复制和分发此信息。公众可以免费复制和使用此信息,但必须在所有副本上复制本声明及任何作者声明。政府和LANS均不对此信息的使用作出任何明示或暗示的保证,也不承担任何责任。

Stanislaw Ulam: By Los Alamos National Laboratory. Unless otherwise indicated, this information has been authored by an employee or employees of the Los Alamos National Security, LLC (LANS), operator of the Los Alamos National Laboratory under Contract No. DE-AC52-06NA25396 with the US. Department of Energy. The US Government has rights to use, reproduce, and distribute this information. The public may copy and use this information without charge, provided that this Notice and any statement of authorship are reproduced on all copies. Neither the Government nor LANS makes any warranty, express or implied, or assumes any liability or responsibility for the use of this information.

第 8 章 引文:此摘录最初发表于《大西洋月刊》 ,并经《大西洋月刊》许可在此转载 。

Chapter 8 quote: This excerpt was originally published in The Atlantic and is reprinted here with permission from The Atlantic .

第 10 章 引用:感谢 Ken Jennings。

Chapter 10 quote: Thanks to Ken Jennings.

第十二章引文:© Robert W. Foster。由 Robert W. Foster 提供。

Chapter 12 quote: © Robert W. Foster. Courtesy of Robert W. Foster.

关于作者

About the author

Chris Bleakley 拥有 35 年的算法设计经验。

Chris Bleakley has 35 years of experience in designing algorithms.

过去十六年来,他一直教授和撰写有关这个主题的文章。

For the past sixteen years he has taught and written on the subject.

布莱克利在学生时代自学了家用电脑编程。两年内,他便通过邮购的方式向英国客户销售自己编写的计算机程序。布莱克利毕业于贝尔法斯特女王大学,获得计算机科学学士学位(荣誉学位),后又在都柏林城市大学获得电气工程博士学位。之后,他先后在埃森哲担任软件顾问,以及博通爱尔兰研究中心担任高级研究员。之后,他被任命为Massana的技术副总裁,Massana是一家领先的初创公司,致力于开发用于数据通信的集成电路和软件。

As a schoolboy, he taught himself to program on a home computer. Within two years, he was selling his own computer programs by mail order to customers in the United Kingdom. Bleakley received a bachelor's degree (with honours) in computer science from Queen's University, Belfast, and a PhD in electrical engineering from Dublin City University. He then worked as a software consultant at Accenture and later as a senior researcher at Broadcom Éireann Research. He was then appointed vice-president of technology at Massana, a leading start-up company developing integrated circuits and software for data communications.

如今,布莱克利是爱尔兰都柏林大学(UCS)计算机科学系副教授兼系主任。他领导的研究小组致力于探索分析物理世界传感器数据的新算法。他的研究成果已发表在领先的同行评审期刊上,并在重要的国际会议上发表。

Today, Bleakley is an associate professor and head of the Department of Computer Science at University College Dublin (UCS) in Ireland. He leads a research group focused on discovering new algorithms for analyzing sensor data from the physical world. His work has been published in leading peer-reviewed journals and presented at major international conferences.

克里斯与妻子和两个孩子住在都柏林。

Chris lives in Dublin with his wife and two children.

来源参考

Source reference

第 8 页: pxhere.com 第 18 页: pxhere.cfiogom第 20 页: www.earthismysterious.com/uruk-the-worlds-first-big-city/ 第 25 页: www.alaintruong.com/archives/2010/11/12/19582212.html 第 36 页: www.greenprophet.com/2020/05/6000-years-before-stonehenge-there-was-gobekli-tepe-new-hidden-patterns-found/ 第 45 页: commons.wikimedia.org/wiki/文件:Grenoble_-_ancien_évêché_-_Joseph_Fourier.JPG第 52 页: Sagor 第 57 页: https://spectrum.ieee.org/untold-history-of-ai-charles-babbage-and-the-turk 第 62 页:公共领域第 72 页: www.ucg.org/beyond-today/beyond-to-day-magazine/seven-prophetic-end-time-markers 第 76 页:伦敦国家美术馆第 79 页: spectrum.ieee.org/untold-history-of-ai-invisible-woman-programmed-americas-first-electronic-computer第 84 页 en.wikipedia.org/wiki/Stanislaw_Ulam 第 88 页: www.ias.edu/ideas/2012/george-dyson-ecp 第 96 页: pxhere.com 第 99 页: spectrum.ieee.org/alan-turing-how-his-universal-machine-became-a-musical-instrument 页面111: medium.com/inside-machine-learning/navigating-the-ai-and-cognitive-maze-3d7f95a485fa 第118页: pxhere.com 第131页 链接: en.wikipedia.org/wiki/Edsger_Dijkstra 右: interestingengineering.com/solving-these-6-major-math-problems-can-earn-you-1-million 第 140 页: www.nytimes.com/2015/08/20/science/john-henry-holland-computerized-evolution-dies-at-86.htm 第 146 页: pxhere.com 第 149 页: 维基百科 麻省理工学院博物馆 第 157 页: Northernvirginiamag.com/culture/culture-features/2021/07/23/meet-mclean-residents-bob-kahn-and-vint-cerf-they-invented-the-internet/ 第 161 页: jeremykun.com/2015/03/02/hammings-code/ 第 176 页:库存 Sagor第 183 页:公共领域 pg 196: pxhere.com 第 198 页: www.businessinsider.nl/mark-zuckerberg-foto-zonnebrand-kleding/ 第 212 页: www.youtube.com/watch?v =P18EdAKuC1U 第 224 页: pxhere.com 第 227 页: nautil.us/issue/21/information/the-man-who-tried-to-redeem-the-world-with-logic 第 230 页: en.wikipedia.org/wiki/Frank_Rosenblatt 第 240 页: appliedabstractions.com/2019/07/11/from-notepad-the-power-and-limits-of-deep-learning-yann-lecun/ 第 243 页:公共领域 第 248 页: commons.wikimedia.org/wiki/文件:Yoshua_Bengio_(36468299790).jpg第 250和259 www.deepmind.com/blog/article/alphazero-shedding-new-light-grand-games-chess-shogi-and-go第 264 页: www.metronieuws.nl/lifestyle/tech/2021/02/bitcoin-verbruikt-jaarlijks-meer-energie-dan-nederland/其他图片:作者提供,Sagor 改编。

page 8: pxhere.com page 18: pxhere.cfiogom page 20: www.earthismysterious.com/uruk-the-worlds-first-big-city/ page 25: www.alaintruong.com/archives/2010/11/12/19582212.html page 36: www.greenprophet.com/2020/05/6000-years-before-stonehenge-there-was-gobekli-tepe-new-hidden-patterns-found/ pg 45: commons.wikimedia.org/wiki/ File: Grenoble_-_ancien_évêché_-_Joseph_Fourier.JPG pg 52: Sagor pg 57: https://spectrum.ieee.org/untold-history-of-ai-charles-babbage-and-the-turk pg 62: public domain pg 72: www.ucg.org/beyond-today/beyond-to-day-magazine/seven-prophetic-end-time-markers pg 76: National Gallery London pg 79: spectrum.ieee.org/untold-history-of-ai-invisible-woman-programmed-americas-first-electronic-computer pg 84: en.wikipedia.org/wiki/Stanislaw_Ulam pg 88: www.ias.edu/ideas/2012/george-dyson-ecp pg 96: pxhere.com pg 99: spectrum.ieee.org/alan-turing-how-his-universal-machine-became-a-musical-instrument page 111: medium.com/inside-machine-learning/navigating-the-ai-and-cognitive-maze-3d7f95a485fa page 118: pxhere.com p 131 links: en.wikipedia.org/wiki/Edsger_Dijkstra right: interestingengineering.com/solving-these-6-major-math-problems-can-earn-you-1-million page 140: www.nytimes.com/2015/08/20/science/john-henry-holland-computerized-evolution-dies-at-86.htm pg 146: pxhere.com p149: wikipedia MIT Museum pg 157: northernvirginiamag.com/culture/culture-features/2021/07/23/meet-mclean-residents-bob-kahn-and-vint-cerf-they-invented-the-internet/ pg 161: jeremykun.com/2015/03/02/hammings-code/ pg 176: stock Sagor pg 183: public domain pg 196: pxhere.com page 198: www.businessinsider.nl/mark-zuckerberg-foto-zonnebrand-kleding/ page 212: www.youtube.com/watch?v=P18EdAKuC1U page 224: pxhere.com page 227: nautil.us/issue/21/information/the-man-who-tried-to-redeem-the-world-with-logic page 230: en.wikipedia.org/wiki/Frank_Rosenblatt pg 240: appliedabstractions.com/2019/07/11/from-notepad-the-power-and-limits-of-deep-learning-yann-lecun/ pg 243: public domain pg 248: commons.wikimedia.org/wiki/File: Yoshua_Bengio_(36468299790).jpg p 250 and 259: www.deepmind.com/blog/article/alphazero-shedding-new-light-grand-games-chess-shogi-and-go p 264: www.metronieuws.nl/lifestyle/tech/2021/02/bitcoin-verbruikt-jaarlijks-meer-energie-dan-nederland/ . Other figures: via the author, adapted by Sagor.

对于插图和照片的使用,我们已尽可能地征得版权所有者的许可。如果您认为我们在这方面做得不够,请联系出版商。

For the use of illustrations and photographs, permission has been requested from the copyright holders as far as possible. Those who nevertheless believe that this has not been done sufficiently in their view, are requested to contact the publisher.

指数

Index

π

π

-,定义38

-,definition 38

-,取消订阅38 - 43

-,unsubscribe 38 - 43

-,助记符37

-,mnemonic 37

A*算法135

A* algorithm 135

推荐系统

recommendation system

-,亚马逊 183 - 186

-,Amazon 183 - 186

-,因子203 - 205

-,factor 203 - 205

-,产品对比表185

-,product comparison table 185

-,培训205 - 207

-,training 205 - 207

阿贝,克利夫兰74

Abbe, Cleveland 74

阿伯丁试验场78 , 82 , 88

Aberdeen Proving Ground 78 , 82 , 88

巴斯的阿德拉德44

Adelard of Bath 44

阿德尔曼,伦纳德170 - 171 , 175

Adleman, Leonard 170 - 171 , 175

Adobe 249

Adobe 249

阿富汗29

Afghanistan 29

AI-冬季115 - 116 , 236

AI-winter 115 - 116 , 236

艾肯,霍华德70

Aiken, Howard 70

阿卡德人

Akkadian

-,帝国21

-,Reich 21

-,语言21 - 22 , 23

-,language 21 - 22 , 23

阿斯·萨赫米 (al-As al-Sahmi),阿姆鲁·伊本 (Amr ibn) 将军35 岁

al-As al-Sahmi, general Amr ibn 35

穆罕默德·本·穆萨·花剌子米43 - 44

al Khwarizmi, Mohammad ibn Musa 43 - 44

Alexa 50

Alexa 50

亚历山大大帝29 - 30

Alexander the Great 29 - 30

亚历山大30 , 33 , 35

Alexandria 30 , 33 , 35

- , 30-31、33、35图书馆​​

-,Library of 30 - 31 , 33 , 35

-,卡20

-,card 20

-30、35博物馆​

-,Museum of 30 , 35

-,塞拉皮斯神庙35

-,Temple of Serapis 35

-,30的灯塔

-,lighthouse of 30

AlexNet 247

AlexNet 247

代数29 , 43 , 22 , 105 - 106 , 108 , 116

algebra 29 , 43 , 22 , 105 - 106 , 108 , 116

算法

algorithm

-,亚马逊推荐 - 185

-,Amazon Recommendation- 185

-,阿基米德的 41

-,Archimedes' 41

-决策 10

-,decision-making 10

-,反证法66

-,proof by contradiction 66

-,比特币282

-,Bitcoin 282

-,定义7 , 9

-,definition 7 , 9

-,除以二 10

-,divide by two 10

-,将偶数除以二 10

-,divide even number by two 10

-,集合天气预报92

-,ensemble weather forecast 92

-,词源 44

-,etymology 44

-,欧几里得迭代 31

-,Euclid's iterative 31

-,欧几里得递归 32

-,Euclid's recursive 32

-傅里叶变换 50

-fourier transform 50

-,遗传142

-,genetic 142

-旅行商问题120

-,traveling salesman problem 120

-,插入排序 11 - 14 , 124 - 125

-,Insertion Sort 11 - 14 , 124 - 125

-人工神经网络233

-,artificial neural network 233

-人工神经网络训练 281

-,artificial neural network training 281

-,最小最大113

-,minimax 113

-,蒙特卡罗- 86

-,Monte-Carlo- 86

-Netflix 培训- 206

-,Netflix Training- 206

-Netflix 预测- 204

-,Netflix Predictions- 204

-,数值天气预报92

-,numerical weather forecast 92

-,PageRank- 281

-,PageRank- 281

-,包裹路线154

-,package route 154

-,职位评估- 111

-,position evaluation- 111

-,公钥加密169

-,public key encryption 169

-,快速排序- 13 - 14

-,Quicksort- 13 - 14

-RSA解密171

-,RSA decryption 171

-RSA加密171

-,RSA encryption 171

-RSA密钥形成172

-,RSA key formation 172

-,肖尔斯282

-,Shors 282

-,停止问题66

-,stop problem 66

-,图灵机 63

-,Turing machine 63

-27的平方根

-,square root of two 27

-,水库 24

-,water reservoir 24

-埃拉托斯特尼筛法34

-,sieve of Eratosthenes 34

算法

algorithms

-, 16的利息

-,interest of 16

-,增长94

-, growth of 94

-, Liber algorismi de Numero Indorum 44

-, Liber algorismi de Numero Indorum 44

字母表 194

Alphabet 194

AlphaGo 251 - 258 , 261

AlphaGo 251 - 258 , 261

-人工神经网络256 - 258

-,artificial neural network 256 - 258

-,硬件255 - 256

-,hardware 255 - 256

-,性能258

-,performance 258

-,培训257 - 258

-,training 257 - 258

字母表194

Alphabet 194

AlphaGo Zero 262

AlphaGo Zero 262

AlphaZero 262 - 263

AlphaZero 262 - 263

亚马逊181 - 186 , 194 , 201 , 202 , 249

Amazon 181 - 186 , 194 , 201 , 202 , 249

美国空军 90、91、106、139

US Air Force 90 , 91 , 106 , 139

美国海军 139

US Navy 139

美国国防部144

US Department of Defense 144

分析机56 - 60

Analytical Machine 56 - 60

安德森,Marc 181

Andreessen, Marc 181

阿波罗11号150

Apollo 11 150

苹果155 , 178 , 179 , 249

Apple 155 , 178 , 179 , 249

-,我 178

-,I 178

-,][ 178

-,][ 178

- , Macintosh 155、178、179

-,Macintosh 155 , 178 , 179

-,Siri 50

-,Siri 50

拉希德,哈里发哈伦43

ar-Rashid, Caliph Harun 43

阿拉伯语43 - 44

Arabic 43 - 44

阿基米德39 - 41 , 43

Archimedes 39 - 41 , 43

阿基米德算法41

Archimedes' Algorithm 41

亚里士多德73

Aristotle 73

ARPA(高级研究计划局)148、149、155

ARPA (Advanced Research Projects Agency) 148 , 149 , 155

-,IPTO(信息处理技术 办公室148 - 150,155

-,IPTO (Information Processing Techniques Office) 148 - 150 , 155

阿帕网148 - 151

ARPANET 148 - 151

-,第一条消息150

-,first message 150

亚述巴尼拔王第 28 章

Ashurbanipal, King 28

计算机协会(ACM)70

Association of Computing Machines (ACM) 70

-,图灵奖70 , 109 , 129 , 135 , 158 , 166 , 175 , 194 , 236 , 249

-,Turing Award 70 , 109 , 129 , 135 , 158 , 166 , 175 , 194 , 236 , 249

亚述21

Assyria 21

天文学会55

Astronomical Society 55

AT&T 207 , 240 , 242 , 247

AT&T 207 , 240 , 242 , 247

阿塔纳索夫,约翰 82

Atanasoff, John 82

阿塔纳索夫-贝里计算机(ABC)82

Atanasoff–Berry Computer (ABC) 82

雅达利261

Atari 261

原子弹

atomic bomb 81

-核试验51

-,nuclear tests 51

自动计算引擎 (ACE) 98 , 150

Automatic Computing Engine (ACE) 98 , 150

-,飞行员98 - 99

-,Pilot 98 - 99

查尔斯·巴贝奇54 - 60 , 79 , 116

Babbage, Charles 54 - 60 , 79 , 116

-,肖像57

-,portrait 57

巴比伦 20,21

Babylon 20 , 21

巴比伦尼亚 20,21

Babylonia 20 , 21

-古巴比伦时期23

-,Old Babylonian Period 23

-,帝国21

-,Reich 21

-,语言21 - 23

-,language 21 - 23

-,早期数学23 - 26

-,early mathematics 23 - 26

-,天气预报73

-,weather forecast 73

西洋双陆棋260

backgammon 260

背部按摩 192

BackRub 192

百度249

Baidu 249

弹道研究实验室(BRL)77 - 82

Ballistic Research Laboratory (BRL) 77 - 82

巴兰,保罗150

Baran, Paul 150

贝克托尔斯海姆,安迪193

Bechtolsheim, Andy 193

图像识别245 - 247

image recognition 245 - 247

贝希斯敦铭文22

Behistun Inscription 22

简明算术书(通过完成和比较 43)

Concise Book on Arithmetic by Completing and Comparing 43

强化学习115 , 257 , 258 , 262

reinforcement learning 115 , 257 , 258 , 262

贝尔 实验室110、161、162、165、240、242、245、247

Bell Labs 110 , 161 , 162 , 165 , 240 , 242 , 245 , 247

贝尔,亚历山大·格雷厄姆 161

Bell, Alexander Graham 161

BellKor 的实用混乱207

BellKor's Pragmatic Chaos 207

采样49

sampling 49

约书亚·本吉奥244 , 247249

Bengio, Yoshua 244 , 247249

— 引用244

-,quote 244

-,照片248

-,photo 248

伯纳斯-李,蒂姆 179 - 181 , 194

Berners-Lee, Tim 179 - 181 , 194

做出决定10 , 28 - 29

making a decision 10 , 28 - 29

—结论108

-,conclusion 108

决策树

decision tree

-,跳棋112

-,checkers 112

-,去253

-,go 253

贝特,汉斯89

Bethe, Hans 89

—,引用89

-,quote 89

监督训练244

supervised training 244

证明 108

proof 108

杰夫·贝佐斯182 , 194

Bezos, Jeff 182 , 194

— 引用182

-,quote 182

贝佐斯,麦肯齐 182

Bezos, MacKenzie 182

大数据201 , 208 , 209

big data 201 , 208 , 209

二进制数162 - 165 , 230

binary numbers 162 - 165 , 230

比特币266 - 270 , 272 - 273

Bitcoin 266 - 270 , 272 - 273

-, 272个地雷

-,mines of 272

-,事务(模式)269

-,transaction (schema) 269

比耶克内斯,维尔海姆 74 - 75

Bjerknes, Vilhelm 74 - 75

布莱切利园68 - 70 , 99 , 174

Bletchley Park 68 - 70 , 99 , 174

比拉斯,弗朗西斯79

Bilas, Frances 79

高清块

Block, HD

-,引用235

-,quote 235

区块链 271 - 272

blockchain 271 - 272

-,模式271

-,schema 271

博尔特、Beranek和纽曼技术 ( BBN ) 150、156、158

Bolt, Beranek, and Newman Technologies (BBN) 150 , 156 , 158

炸弹68

Bomb 68

波拿巴,拿破仑 46

Bonaparte, Napoleon 46

博斯普鲁斯海峡21

Bosphorus 21

波士顿池算法 138

Boston Pool Algorithm 138

巴西91

Brazil 91

布林,谢尔盖 187 , 192 - 194

Brin, Sergei 187 , 192 - 194

— 引用187

-,quote 187

英国东印度公司 22

British East India Company 22

大英博物馆23

British Museum 23

英国海军68

British Navy 68

原文167

source text 167

布朗大学136

Brown University 136

错误59

bug 59

伯吉斯,克里斯托弗 245

Burges, Christopher 245

伯克斯,亚瑟81 , 139

Burks, Arthur 81 , 139

布什,万尼瓦尔 180

Bush, Vannevar 180

— 引用 177

-,quote 177

拜伦夫人57

Byron, Lady 57

拜伦勋爵57

Byron, Lord 57

凯撒,朱利 35,166

Caesar, Julius 35 , 166

凯撒号166

Caesar number 166

Cailliau,罗伯特180

Cailliau, Robert 180

卡哈尔、圣地亚哥·拉蒙和 226

Cajal, Santiago Ramón and 226

加州理工学院275

Caltech 275

加拿大207 , 239

Canada 207 , 239

-,蒙特利尔169 , 172

-,Montreal 169 , 172

-,多伦多 217

-,Toronto 217

加拿大高等研究院 (CIFAR) 243

Canadian Institute For Advanced Research CIFAR) 243

坎菲尔德纸牌84 - 86

Canfield Solitaire 84 - 86

-,图85

-,diagram 85

卡内基理工学院(CIT 106、109

Carnegie Institute of Technology (CIT) 106 , 109

卡内基梅隆大学109 , 237 , 243

Carnegie Mellon University 109 , 237 , 243

疾病控制与预防中心(CDC 208-210

Centers for Disease Control and Prevention (CDC) 208 - 210

瑟夫,文特156 - 158

Cerf, Vint 156 - 158

欧洲核子研究中心 (CERN) 179 - 181

CERN (European Organisation for Nuclear Research) 179 - 181

钱德勒,雷蒙德183

Chandler, Raymond 183

混沌理论90 - 93

chaos theory 90 - 93

查尼,朱尔88 , 89

Charney, Jule 88 , 89

跳棋 99 - 103 , 110 - 114

checkers 99 - 103 , 110 - 114

-,董事会101

-,board 101

-,规则100

-,rules 100

-,撒母耳记下110 - 114

-,Samuel 110 - 114

-,斯特雷奇98 , 100 - 102

-,Strachey 98 , 100 - 102

中国40 , 252 , 253

China 40 , 252 , 253

-,扬子40

-,Yangtze 40

-,黄河40

-,Yellow River 40

-,计数框53

-,counting frame 53

-,早期数学40

-,early mathematics 40

丘奇,阿隆佐 67

Church, Alonzo 67

数字识别239 - 246

number recognition 239 - 246

密文167

ciphertext 167

电影比赛202 , 203 , 206 , 207

Cinematch 202 , 203 , 206 , 207

圆圈38

circle 38

-图39

-,diagram 39

-,多边形近似39 - 42

-,polygon approximation 39 - 42

电路交换152

circuit switching 152

克拉克,韦斯利229 - 230

Clark, Wesley 229 - 230

克莱数学研究所 129

Clay Mathematics Institute 129

克莱门特,杰克56

Clement, Jack 56

科克斯,克利福德174

Cocks, Clifford 174

组合优化,量子计算机277

combinatorial optimization, quantum computer 277

组合优化问题130 , 135 , 139 , 141

combinatorial optimization problems 130 , 135 , 139 , 141

-在量子计算机中 277

-,in quantum computers 277

复杂度类别126 - 130

complexity classes 126 - 130

-,>NP 128 - 129

-,>NP 128 - 129

-,NP 127

-,NP 127

-,NP完全128 - 129

-,NP-complete 128 - 129

-,NP困难 129

-,NP-difficult 129

-,NP|P 127

-,NP|P 127

-,第126 页

-,P 126

-,P 与 NP 128

-,P versus NP 128

-可计算性 65

-,computability 65

-计算复杂度124 - 129

-,computational complexity 124 - 129

-,常数124

-,constant 124

-,定义14

-,definition 14

-,图 125

-,graph 125

-,线性124

-,linear 124

-,二次85

-,quadratic 85

-,多项式时间126 - 127

-,polynomial time 126 - 127

-,准线性125

-,quasilinear 125

—图126

-,diagram 126

-,超多项式时间127

-,superpolynomial time 127

-表127

-,table 127

计算机279

computer 279

-,普遍适用15 , 77

-,generally applicable 15 , 77

-,芯片 93

-,chip 93

-99的第一首音乐

-,first music by 99

-,第一个工作电子77 - 83

-,first working electronic 77 - 83

-,去- 252

-,go- 252

-,量子- 275 - 279

-,quantum- 275 - 279

-,大型机97 , 149 , 177

-,mainframe 97 , 149 , 177

-,微型计算机178

-,microcomputer 178

-,小型机177

-,minicomputer 177

-,国际象棋- 115

-,chess- 115

-,符号操纵器98

-,symbol manipulator 98

-,条件10

-,condition 10

-,操作从1516

-,operation from 15 - 16

卷积神经网络 242 , 245 , 256

convolutional neural network 242 , 245 , 256

库克,斯蒂芬 128 - 130

Cook, Stephen 128 - 130

库利,詹姆斯51

Cooley, James 51

康奈尔大学230 , 275

Cornell University 230 , 275

国家研究计划公司(CNRI)158

Corporation for National Research Initiatives (CNRI) 158

相关性49 - 50

correlation 49 - 50

科尔特斯,科琳娜 245

Cortes, Corinna 245

加密货币266 - 275

cryptocurrency 266 - 275

-双重支付问题(Double Spend)267 - 268

-,double spending problem (Double Spend) 267 - 268

控制论 229密码朋克 266 , 267 , 274

cybernetics 229cypherpunks 266 , 267 , 274

— 密码朋克宣言 266

-,A Cypherpunk's Manifesto 266

昔兰尼 33

Cyrene 33

赛勒斯 220 - 221

CYRUS 220 - 221

居鲁士大帝 21

Cyrus the Great 21

DAB(数字音频广播)50

DAB (Digital Audio Broadcasting) 50

坝体变形99

dam variation 99

暗网 272

Darknet 272

达特茅斯学院 103

Dartmouth College 103

达特茅斯会议105 - 106

Dartmouth Conference 105 - 106

戴维斯,唐纳德150

Davies, Donald 150

道金斯,理查德142 - 143

Dawkins, Richard 142 - 143

DE Shaw & Company 182

DE Shaw & Company 182

小数点25

decimal point 25

深蓝210

Deep Blue 210

深度学习243 - 249

deep learning 243 - 249

DeepMind技术252 - 253、259 - 263​

DeepMind Technologies 252 - 253 , 259 - 263

24-26

division 24 - 26

除以二9

division by two 9

差速器56 - 58 , 70

Differential machine 56 - 58 , 70

迪菲,惠特菲尔德 168 , 170 , 174 , 175

Diffie, Whitfield 168 , 170 , 174 , 175

数字设备公司 (DEC) 178

Digital Equipment Corporation (DEC) 178

数字签名269 - 270

digital signature 269 - 270

-,图270

-,diagram 270

埃兹格·迪杰斯特拉 130 - 135 , 139

Dijkstra, Edsger 130 - 135 , 139

-,照片131

-,photo 131

DNA 141

DNA 141

域名系统158

domain name system 158

截面24、38、40

cross section 24 , 38 , 40

德国53

Germany 53

-,柏林 23 , 70

-,Berlin 23 , 70

电子书 149

e-book 149

埃克特,普雷斯珀77 - 83

Eckert, Presper 77 - 83

理工学校46

Polytechnic School 46

电气技术与电子高等工程师学院 (ESIEE) 239

École Supérieure d'Ingénieurs en Electrotechnique et Electronique (ESIEE) 239

爱丁堡大学115243

Edinburgh, University of 115 , 243

爱迪生,托马斯60

Edison, Thomas 60

EDVAC 80 - 81 , 87

EDVAC 80 - 81 , 87

第一次世界大战 208

World War I 208

埃及29 - 31 , 42 , 46 , 166

Egypt 29 - 31 , 42 , 46 , 166

-,亚历山大 20 , 30 , 31 , 35 , 46

-,Alexandria 20 , 30 , 31 , 35 , 46

-,阿斯旺33

-,Aswan 33

-,开罗 46

-,Cairo 46

-,吉萨 44

-,Giza 44

-,象形文字29

-,hieroglyphs 29

-,入侵46

-,invasion 46

-,孟菲斯30

-,Memphis 30

-,早期数学29

-,early mathematics 29

爱因斯坦,阿尔伯特 80

Einstein, Albert 80

艾森豪威尔,德怀特·D. 148

Eisenhower, Dwight D. 148

埃兰语22

Elamite language 22

几何原本(欧几里得)31 - 33

Elements, The (Euclid) 31 - 33

Elixir 工作室 260

Elixir Studios 260

埃利斯,詹姆斯 174 - 175

Ellis, James 174 - 175

— 引用 174

-,quote 174

电子邮件149 , 265

email 149 , 265

恩格尔巴特,道格拉斯278

Engelbart, Douglas 278

ENIAC 77 - 83 , 86 - 87 , 93

ENIAC 77 - 83 , 86 - 87 , 93

-,示范81 - 82

-,demonstration 81 - 82

- 、数值天气预报 87 - 88、93 - 94

-, numerical weather forecasts 87 - 88 , 93 - 94

-,专利82

-,patent 82

-,程序员79 , 82

-,programmers 79 , 82

谜题68 - 70

Enigma 68 - 70

合奏

ensemble

-推荐系统207

-,recommendation systems 207

-,卡92

-,card 92

-,天气预报 91 - 92

-,weather forecast 91 - 92

爱泼斯坦,爱德华 91 , 93

Epstein, Edward 91 , 93

埃拉托色尼33 - 35

Eratosthenes 33 - 35

以太坊273

Ethereum 273

以太网155

Ethernet 155

欧几里得31 - 33

Euclid 31 - 33

欧几里得算法32 , 278

Euclid's algorithm 32 , 278

幼发拉底河 19 , 20 , 37

Euphrates 19 , 20 , 37

尤里卡39

Eureka 39

欧洲中期天气预报中心(ECMRWF)92

European Center for Medium-Range Weather Forecasts (ECMRWF) 92

专家系统 220 - 222 , 258

expert systems 220 - 222 , 258

脸书198 - 201 , 207 , 249

Facebook 198 - 201 , 207 , 249

-,EdgeRank 200

-,EdgeRank 200

-,天秤座273

-,Libra 273

-,新闻概览199 - 200

-,News overview 199 - 200

Facemash 198

Facemash 198

法利,贝尔蒙特229 - 230

Farley, Belmont 229 - 230

快速傅里叶变换(FFT) 51

fast-fourier transformation (FFT) 51

费,格雷格 28

Fee, Greg 28

费根鲍姆,爱德华220

Feigenbaum, Edward 220

伦敦皇家学会院士55

Fellow of the Royal Society of London 55

腓尼基29

Phoenicia 29

费兰蒂 Mark I 102 , 179

Ferranti Mark I 102 , 179

费鲁奇,戴夫215 - 217

Ferrucci, Dave 215 - 217

费曼,理查德 275

Feynman, Richard 275

斐波那契 44

Fibonacci 44

菲尔兹奖129

Fields Medal 129

电影评级表 204

movie rating table 204

EDVAC 81报告初稿

First Draft of a Report on the EDVAC 81

费舍尔,罗纳德139

Fisher, Ronald 139

福布斯 194 , 201 , 207

Forbes 194 , 201 , 207

傅里叶级数48

fourier series 48

傅里叶变换48 - 51 , 246 , 278

fourier transform 48 - 51 , 246 , 278

-,量子- 278

-,quantum- 278

傅立叶,让-巴蒂斯特·约瑟夫45 - 48 , 51

Fourier, Jean-Baptiste Joseph 45 - 48 , 51

-胸围45

-,bust 45

错误纠正161 - 165 , 279

error correction 161 - 165 , 279

-,校验和160 - 161

-,checksum 160 - 161

-,奇偶校验 162 - 165

-,parity 162 - 165

-,冗余161 - 162

-,redundancy 161 - 162

法国45 - 46

France 45 - 46

-,欧塞尔45

-,Auxerre 45

-,埃菲尔铁塔51

-,Eiffel Tower 51

-,格勒诺布尔46

-,Grenoble 46

-,巴黎46 , 237 , 239 , 247

-,Paris 46 , 237 , 239 , 247

法国大革命45

French Revolution 45

盖尔,大卫135 - 138

Gale, David 135 - 138

Gale-Shapley算法135 - 138

Gale-Shapley Algorithm 135 - 138

加德纳,马丁

Gardner, Martin

— 引用 173

-,quote 173

高斯,卡尔·弗里德里希51

Gauss, Carl Friedrich 51

分布式算法135

distributed algorithm 135

内存 28、62 - 63

memory 28 , 62 - 63

集成电路 93 , 279

integrated circuit 93 , 279

等边40

equilateral 40

通用问题求解器109

General Problem Solver 109

遗传算法 139 - 144

genetic algorithm 139 - 144

自然选择的遗传理论 (Fisher)139

Genetical Theory of Natural Selection, The (Fisher) 139

基于案例的推理221 - 222 , 258

case-based reasoning 221 - 222 , 258

吉尔伽 美什史诗19、23、73

Epic of Gilgamesh, The 19 , 23 , 73

转到115 , 251 - 263

go 115 , 251 - 263

-,复杂性253

-,complexity 253

-,第 252 - 253行

-,lines 252 - 253

哥贝克力石阵 37

Gobekli Tepe 37

戈德斯坦,阿黛尔 80

Goldstine, Adele 80

赫尔曼·戈德斯坦 78 - 81

Goldstine, Herman 78 - 81

波形46 - 50

waveform 46 - 50

-,振幅48

-,amplitude 48

-,创作于48

-,composed 48

-,叠加48

-,superposition 48

谷歌 158 , 187 , 192 - 194 , 246 , 247 , 249 , 252 , 254 , 278 - 279

Google 158 , 187 , 192 - 194 , 246 , 247 , 249 , 252 , 254 , 278 - 279

-,AdWords 193

-,AdWords 193

-,云42

-,Cloud 42

-,DeepMind 挑战赛252

-,DeepMind Challenge 252

-,流感趋势208 - 210

-,Flu Trends 208 - 210

-,实验室245

-,Labs 245

-,PageRank 188 - 194 , 254

-,PageRank 188 - 194 , 254

-,翻译 246 , 248

-,Translate 246 , 248

阿拉伯科学的黄金时代

golden age of arabic science 43

政府代码和密码学校 68

Government Codes and Ciphers School 68

政府通信总部( GCHQ 174-175

Government Communications Headquarters (GCHQ) 174 - 175

图着色问题129

graph coloring problem 129

图形用户界面155 , 178

graphical user interface 155 , 178

希腊166

Greece 166

-,雅典33

-,Athens 33

-,语言43

-,language 43

-,早期数学 27 , 29 , 35

-,early mathematics 27 , 29 , 35

灰度241

grayscale 241

最大公约数( GGD 31-33

greatest common divisor (GGD) 31 - 33

汉密尔顿,威廉120

Hamilton,William 120

哈明,理查德161 - 166

Hamming, Richard 161 - 166

— 引用162

-,quote 162

-,照片 161

-,photo 161

谟 拉比王21,23

Hammurabi, king 21 , 23

-,《汉谟拉比法典》 第 28 页

-, Codex Hammurabi 28

旅行推销员决策问题129

traveling salesman decision problem 129

旅行商问题119 - 124 , 141

traveling salesman problem 119 - 124 , 141

-,树形图121

-,tree diagram 121

-计算复杂度 124 - 129

-,computational complexity 124 - 129

-,定义119

-,definition 119

-量子计算 277

-,quantum calculation 277

-,图120

-,diagram 120

-,详尽搜索 120 - 123

-,exhaustive search 120 - 123

-,世界纪录124

-,world record 124

硬件15

hardware 15

哈蒙,莱昂80

Harmon, Leon 80

谐波46、48、50、51、246

harmonics 46 , 48 , 50 , 51 , 246

哈罗公学98

Harrow School 98

哈佛 Mark I 70

Harvard Mark I 70

哈佛大学 70 , 83 , 139 , 148 , 197 , 198 , 236

Harvard University 70 , 83 , 139 , 148 , 197 , 198 , 236

哈希算法270 - 272

Hash Algorithm 270 - 272

哈萨比斯,德米斯 253 , 254 , 259 - 261

Hassabis, Demis 253 , 254 , 259 - 261

-,引用260

-,quote 260

-照片259

-,photo 259

黑斯廷斯,里德 201 - 202 , 207

Hastings, Reed 201 - 202 , 207

赫布,唐纳德 227

Hebb, Donald 227

赫尔曼,马丁167 - 168 , 170 , 174 , 175

Hellman, Martin 167 - 168 , 170 , 174 , 175

赫尔斯高恩,凯尔德124

Helsgaun, Keld 124

亚历山大的希伦26

Heron of Alexandria 26

Herons 算法27

Herons Algorithm 27

隐马尔可夫模型(HMM)246

Hidden Markov Model (HMM) 246

印度-阿拉伯数字 44 , 247

Hindu-Arabic numerals 44 , 247

欣顿,杰弗里 237 , 239 , 241 - 246 , 249

Hinton, Geoffrey 237 , 239 , 241 - 246 , 249

-,照片243

-,photo 243

霍尔,托尼12

Hoare, Tony 12

霍尔伯顿,贝蒂79

Holberton, Betty 79

霍兰德,约翰 139 - 144

Holland, John 139 - 144

— 引用139

-,quote 139

-,照片140

-,photo 140

福尔摩斯,夏洛克183 , 197

Holmes, Sherlock 183 , 197

匈牙利

Hungary

-,布达佩斯80

-,Budapest 80

霍恩,保罗214 , 215

Horn, Paul 214 , 215

性感与否 198

Hot Or Not 198

智慧之家43

House of Wisdom 43

阿贾251,252,254

Huang, Aja 251 , 252 , 254

埃里克·休斯

Hughes, Eric

— 引用 266

-,quote 266

范惠 254 , 261

Hui, Fan 254 , 261

惠刘42

Hui, Liu 42

希帕提娅 35

Hypatia 35

IBM 70、94、110、115、139、149、155、156、167、178、179、210、222、249、278、279

IBM 70 , 94 , 110 , 115 , 139 , 149 , 155 , 156 , 167 , 178 , 179 , 210 , 222 , 249 , 278 , 279

-《危险边缘》挑战 213 - 218

-Jeopardy Challenge 213 - 218

-,PC 178 , 179

-,PC 178 , 179

-,计算器161

-,calculator 161

-,沃森218 - 222

-,Watson 218 - 222

-,沃森研究中心 168 , 213 , 112 , 147 , 148

-,Watson Research Center 168 , 213 , 112 , 147 , 148

爱尔兰 94

Ireland 94

图像网 247

ImageNet 247

分类器 231

classifier 231

印度 44 , 61 , 166

India 44 , 61 , 166

-,语言43

-,language 43

工业革命51 , 54 , 141

industrial revolution 51 , 54 , 141

流感 208 - 210

influenza 208 - 210

插入排序 11 - 14

Insertion Sort 11 - 14

-计算复杂度124 - 125

-,computational complexity 124 - 125

—,图 11

-,diagram 11

高等研究院(IAS)80 , 83 , 88

Institute for Advanced Study (IAS) 80 , 83 , 88

-,计算机 87 , 88 , 106

-,computer 87 , 88 , 106

英特尔93

Intel 93 ,

星际计算机网络148

Intergalactic Computer Network 148

国际计算机通信会议(ICCC)156

International Computer Communication Conference ICCC) 156

国际标准书号 (ISBN) 160

International Standard Book Number (ISBN) 160

互联网135 , 147 , 149 , 155 , 158 - 159 , 165 , 167 , 169 , 171 , 175 , 179 - 181 ,

internet 135 , 147 , 149 , 155 , 158 - 159 , 165 , 167 , 169 , 171 , 175 , 179 - 181 ,

188、207、255、267

188 , 207 , 255 , 267

-,第一条消息150

-,first message 150

-,互联网协会 158

-,Internet Society 158

互联网泡沫 187 , 194 - 195

internet bubble 187 , 194 - 195

爱荷华州立大学82

Iowa State University 82

伊拉克20

Iraq 20

-,巴格达20 , 23 , 43 , 44

-,Baghdad 20 , 23 , 43 , 44

伊朗20

Iran 20

无理数38

irrational number 38

以色列

Israel

-,特拉维夫170

-,Tel Aviv 170

意大利

Italy

-,都灵 56

-,Turin 56

-,维苏威火山60

-,Vesuvius 60

迭代10、40、41、75、189、191、192、278

iteration 10 , 40 , 41 , 75 , 189 , 191 , 192 , 278

岩尾,艾玛遥42

Iwao, Emma Haruka 42

雅卡尔,约瑟夫·玛丽·查尔斯 54

Jacquard, Joseph Marie Charles 54

贾特利,纳夫迪普246

Jaitly, Navdeep 246

日本42,252

Japan 42 , 252

詹宁斯,贝蒂·吉恩79

Jennings, Betty Jean 79

詹宁斯,肯214 , 216 , 217

Jennings, Ken 214 , 216 , 217

— 引用213 , 217

-,quote 213 , 217

危险边缘! 213 - 217 , 221 - 222

Jeopardy! 213 - 217 , 221 - 222

柯洁261 - 262

Jie, Ke 261 - 262

乔布斯,史蒂夫 178

Jobs, Steve 178

约翰尼亚克106

JOHNNIAC 106

琼斯,威廉38

Jones, William 38

卡恩,鲍勃 156 - 158

Kahn, Bob 156 - 158

— 引用156

-,quote 156

坎普,理查德 130

Camp, Richard 130

-,引用130

-,quote 130

卡斯帕罗夫,加里 210

Kasparov, Garry 210

金,威廉58

King, William 58

柯克曼,托马斯 120

Kirkman, Thomas 120

231-233班​

class 231 - 233

小型珀金斯193

Smaller Perkins 193

克莱因罗克,伦纳德150

Kleinrock, Leonard 150

克莱恩,查理150

Kline, Charley 150

时钟计算 172 , 278

clock calculation 172 , 278

背包问题 129

knapsack problem 129

科洛德纳,珍妮特220

Kolodner, Janet 220

英国女王69 , 194

queen of England 69 , 194

离合器问题135 , 136

clutch problem 135 , 136

韩国252

Korea 252

最短路径 131 - 135

shortest path 131 - 135

最短路径算法132 - 134 , 158

shortest path algorithm 132 - 134 , 158

冷战51 , 115 , 144 , 148

Cold War 51 , 115 , 144 , 148

克拉考尔,大卫144

Krakauer, David 144

— 引用144

-,quote 144

克里热夫斯基,亚历克斯247

Krizhevsky, Alex 247

人工智能 AI103、115-116、279

artificial intelligence (AI) 103 , 115 - 116 , 279

-棋盘游戏103

-,board games 103

-,定义 103

-,definition 103

-机器能思考吗?103 - 105

-,Can Machines Think? 103 - 105

-人工到人类水平(HLAGI104,249

-,artificial to human level (HLAGI) 104 , 249

人工神经网络ANN222,229-249,256-263

artificial neural network (ANN) 222 , 229 - 249 , 256 - 263

-激活函数232 , 237

-,activation function 232 , 237

-,反向传播236 - 239

-,backprop 236 - 239

-,偏差值232

-,bias value 232

-,辍学247

-,drop-out 247

- 编码器和解码器248

-,encoder and decoder 248

-,激励232

-,excitation 232

-前向传播237

-,forward propagation 237

-,概括238

-,generalize 238

-,重量232

-,weight 232

-,推理237

-,inference 237

-,无监督训练244

-,unsupervised training 244

-,隐藏层 232 - 233

-,hidden layer 232 - 233

-,完全连接 232

-,fully connected 232

人工神经元方案231

artificial neuron scheme 231

量子计算机274 - 279

quantum computer 274 - 279

-,干扰277

-,interference 277

-,量子位276 - 279

-,qubit 276 - 279

-,噪音 279

-,noise 279

-,状态崩溃277 - 279

-,state collapse 277 - 279

量子至上 279

quantum supremacy 279

兰伯特,约翰·海因里希38

Lambert, Johann Heinrich 38

拉尔森,82号法官

Larson, Judge 82

拉丁语44 , 80 , 228

Latin 44 , 80 , 228

LeCun, 扬 237 , 239 - 242 , 245

LeCun, Yann 237 , 239 - 242 , 245

— 引用 249

-,quote 249

-,照片240

-,photo 240

莱格,肖恩 260

Legg, Shane 260

莱特文,杰罗姆228 , 229

Lettvin, Jerome 228 , 229

— 引用 229

-,quote 229

说谎者悖论 65

liar paradox 65

免费算盘 44

Free Abaci 44

未来的图书馆 148

Libraries of the Future 148

利希特曼,露丝79

Lichterman, Ruth 79

Licklider,JCR 148 - 149,155

Licklider, JCR 148 - 149 , 155

— 引用 147

-,quote 147

-,照片149

-,photo 149

情书100

love letter 100

莱特希尔,詹姆斯116

Lighthill, James 116

林登,格雷格 183 - 184 , 194

Linden, Greg 183 - 184 , 194

-,照片183

-,photo 183

逻辑理论家107 - 109

Logic Theorist 107 - 109

爱德华·洛伦兹89 , 90 - 91 , 93

Lorenz, Edward 89 , 90 - 91 , 93

洛夫莱斯,艾达57 - 60

Lovelace, Ada 57 - 60

— 引用97

-,quote 97

-,肖像57

-,portrait 57

卢卡斯 数学教授55,116

Lucasian Professor of Mathematics 55 , 116

循环(循环14

loop ( loop ) 14

卢克索29

Luxor 29

利沃夫技术大学 83

Lviv Technical University 83

利塞姆73

Lyceum 73

林奇,彼得94

Lynch, Peter 94

林奇,欧文 94

Lynch, Owen 94

机器学习109 - 115 , 201 , 205 - 210 , 237 , 244 - 245

machine learning 109 - 115 , 201 , 205 - 210 , 237 , 244 - 245

-,建议204-209

-,recommendation 204 - 209

-,定义109 - 110

-,definition 109 - 110

人机共生 147

Man-Computer Symbiosis 147

曼彻斯特宝贝 99

Manchester Baby 99

曼彻斯特 Mark I 102

Manchester Mark I 102

曼彻斯特大学计算机68

Manchester University Computer 68

-,引用 100

-,quote 100

曼哈顿计划81、83、161、275

Manhattan Project 81 , 83 , 161 , 275

曼斯菲尔德修正案 116

Mansfield Amendments 116

标记1 NPL 网络150

Mark 1 NPL Network 150

麻省理工学院(MIT)90 , 107 , 110 , 115 , 139 , 149 - 150 , 155 , 167 , 168 , 170 , 175 , 229 , 235 , 236 , 237 , 247 , 275 , 276

Massachusetts Institute of Technology (MIT) 90 , 107 , 110 , 115 , 139 , 149 - 150 , 155 , 167 , 168 , 170 , 175 , 229 , 235 , 236 , 237 , 247 , 275 , 276

-,林肯实验室107

-,Lincoln Labs 107

数学中心 130 - 131

Mathematical Center 130 - 131

莫奇利,约翰77 - 82

Mauchly, John 77 - 82

— 引用 106

-,quote 106

麦卡锡,约翰103 - 105

McCarthy, John 103 - 105

麦卡洛克,沃伦228 - 229

McCulloch, Warren 228 - 229

麦吉尔大学247

McGill University 247

麦肯锡186 , 208

McKinsey 186 , 208

麦克纳尔蒂,凯瑟琳79

McNulty, Kathleen 79

梅隆研究所109

Mellon Institute 109

Memex 177

Memex 177

梅纳布雷亚和洛夫莱斯

Menabrea and Lovelace

引用58、59、97

-,quote 58 , 59 , 97

梅纳布雷亚,路易吉·费德里科56 , 58 , 60

Menabrea, Luigi Federico 56 , 58 , 60

人脑 104 , 116 , 225 - 226 , 228 , 239 , 260

human brain 104 , 116 , 225 - 226 , 228 , 239 , 260

默克尔,拉尔夫168 - 169 , 174

Merkle, Ralph 168 - 169 , 174

美索不达米亚19 - 29 , 42 , 44 , 166 , 279

Mesopotamia 19 - 29 , 42 , 44 , 166 , 279

-,卡20

-,card 20

气象学 73

Meteorology 73

英国气象局74

Meteorological Office (UK) 74

大都会,尼古拉斯83 , 86 - 87

Metropolis, Nicholas 83 , 86 - 87

—,引用83

-,quote 83

微软182、194、207、273、278

Microsoft 182 , 194 , 207 , 273 , 278

-,研究 245

-,Research 245

- , Windows 155、179、181

-,Windows 155 , 179 , 181

地中海30 , 35 , 43

Mediterranean 30 , 35 , 43

中东21 , 29

Middle East 21 , 29

千年问题129 , 131

millennium problems 129 , 131

极小极大值 112 - 115 , 256

minimax 112 - 115 , 256

-,算法 113

-,algorithm 113

—图 114

-,diagram 114

明斯基和帕珀特

Minsky and Papert

-,引用235

-,quote 235

明斯基,马文 115 , 234236

Minsky, Marvin 115 , 234236

米特公司168

MITRE Corporation 168

MNIST数据文件245

MNIST Data File 245

77

model 77

模运算参见 时钟运算

modular arithmetic see clock arithmetic

蒙特卡洛方法 83 - 86 , 91 - 92

Monte Carlo method 83 - 86 , 91 - 92

蒙特卡洛搜索树 256

Monte Carlo Search Tree 256

摩尔学校78 , 79 , 81 , 82

Moore School 78 , 79 , 81 , 82

摩尔,戈登93

Moore, Gordon 93

莫尔科姆,克里斯托弗62

Morcom, Christopher 62

Mosaic(浏览器)181

Mosaic (browser) 181

默里,阿诺德69

Murray, Arnold 69

马斯基,埃德蒙 220

Muskie, Edmund 220

霉素220

MYCIN 220

中本聪268 , 271 , 272 , 273 - 274

Nakamoto, Satoshi 268 , 271 , 272 , 273 - 274

— 引用273

-,quote 273

拿破仑炸药-第 206题

Napoleon Dynamite - Problem 206

NASA (美国国家航空航天144、148、149、158

NASA (National Aeronautics and Administration) 144 , 148 , 149 , 158

纳斯达克194

NASDAQ 194

国家物理实验室(NPL 68、98、150

National Physical Laboratory (NPL) 68 , 98 , 150

国家研究与发展公司(NRDC) 99 - 100

National Research and Development Corporation (NRDC) 99 - 100

国家住院医师匹配计划(NRMP)138

National Residency Matching Program (NRMP) 138

国家安全局 NSA)168、174

National Security Agency (NSA) 168 , 174

新加坡国立大学 244

National University of Singapore 244

自然进化139 - 141

natural evolution 139 - 141

自然语言处理 246

natural language processing 246

-,Bengio, Yoshua 246 - 249

-,Bengio, Yoshua 246 - 249

-IBM Watson 215 , 221

-,IBM Watson 215 , 221

-,翻译248

-,translation 248

自然 208 , 209 , 237 , 240 , 249 , 261 , 262

Nature 208 , 209 , 237 , 240 , 249 , 261 , 262

海军研究生院165

Naval Postgraduate School 165

NCP(通信协议)158

NCP (communication protocol) 158

尼利,罗伯特114

Nealey, Robert 114

荷兰130

Netherlands 130

-,阿姆斯特丹 130

-,Amsterdam 130

九章算术 42

Nine Chapters on the Mathematical Art 42

Netflix 201 - 208

Netflix 201 - 208

-,奖202 - 207 , 210

-,Prize 202 - 207 , 210

网景187 , 194

Netscape 187 , 194

约翰 ··诺伊曼77、80 - 83、86 - 89、106 - 107、229

Neumann, John von 77 , 80 - 83 , 86 - 89 , 106 - 107 , 229

-,照片88

-,photo 88

中子穿透问题84 - 87

neutron penetration problem 84 - 87

《纽约时报》 230

New York Times 230

纽约大学242

New York University 242

纽卡斯尔大学 75

Newcastle University 75

纽厄尔·艾伦105 - 109

Newell, Allen 105 - 109

— 引用107

-,quote 107

纽曼,马克斯99

Newman, Max 99

吴,安德鲁249

Ng, Andrew 249

非秘密加密175

non-secret encryption 175

尼罗河 30

Nile 30

尼尼微28

Nineveh 28

诺贝尔奖89 , 109 , 129 , 138 , 226 , 275

Nobel Prize 89 , 109 , 129 , 138 , 226 , 275

诺基亚94

Nokia 94

挪威158

Norway 158

NSFNET 158

NSFNET 158

26 , 44

zero 26 , 44

数值天气预报 75 - 77 , 87 , 89 , 91

numerical weather forecasts 75 - 77 , 87 , 89 , 91

乌克兰83

Ukraine 83

官方保密法175

Official Secrets Act 175

周长24 , 38

circumference 24 , 38

-,地球 33

-,of the earth 33

无监督训练244

unsupervised training 244

无限循环65

infinite loop 65

连续 9

consecutive 9

奥本海默,罗伯特80

Oppenheimer, Robert 80

优化问题141 , 144

optimization problem 141 , 144

奥西德罗,西蒙244

Osindero, Simon 244

印度算术艺术 43 - 44

On the Hindu Art of Arithmetic 43 - 44

方案 150 - 155

package 150 - 155

-,路由156 - 159

-,routing 156 - 159

-表 154

-,table 154

分组交换 150 - 159

packet switching 150 - 159

-,图151

-,diagram 151

佩奇,拉里 187 - 188 , 192 - 194

Page, Larry 187 - 188 , 192 - 194

— 引用187

-,quote 187

PageRank 187 - 194

PageRank 187 - 194

页面链接表191

page links table 191

-,迷你-WWW 192

-,mini-WWW 192

-,图190

-,diagram 190

-,表 190

-,table 190

巴基斯坦21 , 43

Pakistan 21 , 43

-,印度河流域文明43

-,Indus Valley Civilization 43

佩珀特,西摩234 , 235 - 236 , 239

Papert, Seymour 234 , 235 - 236 , 239

纸 莎草29,30

papyrus 29 , 30

悖论65 - 67

paradox 65 - 67

奇偶校验位162 - 165

parity bit 162 - 165

帕克,大卫237

Parker, David 237

模式识别225 - 226 , 234 , 235 , 246 , 249 , 258

pattern recognition 225 - 226 , 234 , 235 , 246 , 249 , 258

《电脑杂志》 193

PC Magazine 193

五角大楼150

Pentagon 150

五心260

Pentamind 260

胡椒盐蝴蝶141

pepper and salt butterfly 141

感知器230 - 236

perceptron 230 - 236

-,多层235 - 236

-,multilayer 235 - 236

—图233

-,diagram 233

感知器 234 - 236

Perceptrons 234 - 236

47-49期,278

period 47 - 49 , 278

个性化183 , 198 - 201 , 207

personalization 183 , 198 - 201 , 207

波斯21 , 29 , 44

Persia 21 , 29 , 44

-,统治21 , 29

-,Reign 21 , 29

-,语言21 , 22

-,language 21 , 22

波斯湾 20 , 21

Persian Gulf 20 , 21

PGP 266

PGP 266

博士67

PhD 67

PHONIAC 94

PHONIAC ​​94

皮茨,沃尔特228 - 229

Pitts, Walter 228 - 229

-,照片 227

-,photo 227

像素 226 , 232

pixel 226 , 232

层(半套)101

ply (half-set) 101

扑克 260

poker 260

波兰68

Poland 68

-,华沙83

-,Warsaw 83

职位评估110 - 115 , 258

position assessment 110 - 115 , 258

108号房地

premises 108

质数33 - 35

prime numbers 33 - 35

-,在RSA加密中 172 , 274 - 275

-,in RSA encryption 172 , 274 - 275

-,分解为274 - 279

-,decompose into 274 - 279

-, 35 个列表

-,list of 35

普林斯顿大学67 , 80 , 81 , 106 , 109 , 135 , 136 , 156 , 182 , 235

Princeton University 67 , 80 , 81 , 106 , 109 , 135 , 136 , 156 , 182 , 235

《数学原理》( 罗素和怀特海著 108、228

Principia Mathematica (Russell and Whitehead) 108 , 228

计划15

program 15

MAC 149项目

Project MAC 149

议定书156-159

protocol 156 - 159

托勒密

Ptolemy

-,I 30 - 31

-,I 30 - 31

-,III 33

-,III 33

-,14 35

-,XIV 35

公钥密码学166 - 175 , 266 - 271

public key cryptography 166 - 175 , 266 - 271

快速排序12 - 14 , 124

Quicksort 12 - 14 , 124

-计算复杂度 125

-,computational complexity 125

—,图13

-,diagram 13

雷达 98 , 139

radar 98 , 139

兰德公司106 - 107 , 136 , 150

RAND Corporation 106 - 107 , 136 , 150

兰道夫,201年3月,202年207年

Randolph, Marc 201 , 202 , 207

罗林森爵士亨利22 - 23

Rawlinson, Sir Henry 22 - 23

递归32

recursion 32

计算器

calculator

-,机械 53 - 54

-,mechanical 53 - 54

雷明顿兰德 82,83

Remington Rand 82 , 83

文艺复兴44

renaissance 44

伦斯勒理工学院215

Rensselaer Polytechnic Institute 215

莱因德,亨利 29

Rhind, Henry 29

莎草纸29 , 38 , 42

Rhindpapyrus 29 , 38 , 42

理查森,刘易斯·弗莱75 - 77 , 87

Richardson, Lewis Fry 75 - 77 , 87

-照片76

-,photo 76

里维斯特,罗纳德171 - 172 , 175

Rivest, Ronald 171 - 172 , 175

罗伯茨,拉里150

Roberts, Larry 150

洛克菲勒基金会103 , 105

Rockefeller Foundation 103 , 105

红海30

Red Sea 30

罗马

Rome

-,计数框 53

-,counting frame 53

-,旧41 , 43

-,old 41 , 43

-,帝国 43

-,Reich 43

罗马数字44

Roman numerals 44

罗森布拉特,弗兰克230 - 236

Rosenblatt, Frank 230 - 236

-,照片 230

-,photo 230

罗斯,阿尔文138

Roth, Alvin 138

RSA 171 - 175,266,274

RSA 171 - 175 , 266 , 274

-,编码173 - 175

-,coding 173 - 175

-,开裂174 - 175

-,cracking 174 - 175

-,密钥生成器172 - 173

-,key generator 172 - 173

罗素·伯特兰108 , 228

Russell, Bertrand 108 , 228

俄罗斯

Russia

-,莫斯科187

-,Moscow 187

拉特,布拉德214 - 217

Rutter, Brad 214 - 217

— 引用217

-,quote 217

塞缪尔·亚瑟110 - 115 , 256

Samuel, Arthur 110 - 115 , 256

-,照片111

-,photo 111

圣达菲研究所144

Santa Fe Institute 144

287

satoshi 287

国际象棋115 , 210 , 250 , 252 , 253 , 259 ,

chess 115 , 210 , 250 , 252 , 253 , 259 ,

260 , 262 - 263施米德胡贝尔, 于尔根245

260 , 262 - 263 Schmidhuber, Jürgen 245

科学研究委员会 116

Science Research Council 116

《科学美国人》 173

Scientific American 173

拼字游戏260

Scrabble 260

塞博赫特,塞维鲁主教44

Sebokht, Bishop Severus 44

安全套接字层174

Secure Socket Layer 174

李世石251 - 255 , 258

Sedol, Lee 251 - 255 , 258

-,引用255

-,quote 255

-,上帝之手255套

-,set of God's hand 255

塞尔福里奇,奥利弗107

Selfridge, Oliver 107

红杉资本193

Sequoia Capital 193

六十进制25

sexagesimal 25

摇晃机器人134

Shakey the Robot 134

沙米尔,阿迪 170 - 171 , 175

Shamir, Adi 170 - 171 , 175

香农,克劳德103 , 115

Shannon, Claude 103 , 115

沙普利,劳埃德135 - 138

Shapley, Lloyd 135 - 138

将棋250 , 262

Shogi 250 , 262

肖尔,彼得276

Shor, Peter 276

-, 276 - 278 , 282的算法

-,algorithm of 276 - 278 , 282

西西里岛

Sicily

-,锡拉丘兹39

-,Syracuse 39

信号49 , 50

signal 49 , 50

硅谷193 , 201

Silicon Valley 193 , 201

西尔弗,唐 253

Silver, Don 253

西蒙·赫伯特105 - 107 , 109 , 115

Simon, Herbert 105 - 107 , 109 , 115

用计算机模拟物理 275

Simulating Physics with Computers 275

模拟77

simulation 77

辛克莱光谱 48K 259

Sinclair Spectrum 48K 259

分析引擎示意图 58 , 97

Sketch of the Analytical Engine 58 , 97

SNARC 235

SNARC 235

社交网络198 - 199

social network 198 - 199

苏美尔 19 - 20 , 21 , 37

Sumer 19 - 20 , 21 , 37

-,埃利都 20

-,Eridu 20

-,基什20

-,Kish 20

-,语言20 - 21

-,language 20 - 21

-,计数框53

-,counting frame 53

-,你 20

-,Ur 20

-,乌鲁克20

-,Uruk 20

软件15

software 15

使用跳棋游戏进行机器学习的一些研究 110

Some Studies in Machine Learning using the Game of Checkers 110

排序 11 - 15

sort 11 - 15

苏联 51,147

Soviet Union 51 , 147

西班牙226

Spain 226

斯宾塞,荷马79

Spence, Homer 79

楔形文字21 - 26

cuneiform 21 - 26

Spotify 50

Spotify 50

斯普尼克147号

Sputnik 147

语音识别246

speech recognition 246

斯里兰卡12

Sri Lanka 12

稳定婚姻问题135 - 138

stable marriage problem 135 - 138

-表136

-,table 136

斯坦福研究所 SRI 150、157、178

Stanford Research Institute (SRI) 150 , 157 , 178

斯坦福大学 106 , 115 , 139 , 156 , 167 , 168 , 175 , 187 , 192 , 193 , 194

Stanford University 106 , 115 , 139 , 156 , 167 , 168 , 175 , 187 , 192 , 193 , 194

X 站68 - 69

Station X 68 - 69

勾股定理26 , 42

Pythagorean theorem 26 , 42

斯蒂芬森,罗伯特56

Stephenson, Robert 56

停止问题65 - 67

stop problem 65 - 67

—图67

-,diagram 67

38

beam 38

斯特拉博30

Strabo 30

-,引用30

-,quote 30

斯特雷奇,克里斯托弗98 - 102 , 103 , 110

Strachey, Christopher 98 - 102 , 103 , 110

-,照片99

-,photo 99

苏莱曼,穆斯塔法260

Suleyman, Mustafa 260

苏茨克韦尔,伊利亚 247

Sutskever, Ilya 247

赛耶尼 33

Syene 33

符号逻辑235

symbolic logic 235

符号推理109

symbolic reasoning 109

叙利亚29

Syria 29

泰勒,鲍勃148 , 149 - 150 , 155 , 178

Taylor, Bob 148 , 149 - 150 , 155 , 178

-,引用 150

-,quote 150

TCP/IP 157 - 159

TCP/IP 157 - 159

特勒,爱德华80 , 84

Teller, Edward 80 , 84

计数框架 44 , 53

counting frame 44 , 53

最富有的 195

The Richest 195

亚历山大的狄奥菲勒斯,教皇35

Theophilus of Alexandria, Pope 35

泰奥弗拉斯托斯73

Theophrastus 73

夏勒尔分析理论 46

Théorie Analytique de la Chaleur 46

潮汐50

Tidal 50

底格里斯19 , 20

Tigris 19 , 20

泰晤士报, 274

Times, The 274

条件62

condition 62

拓扑234

topology 234

Tor 266

Tor 266

追踪59

tracing 59

晶体管 93

transistor 93

特雷贝克,亚历克斯215 - 216

Trebek, Alex 215 - 216

图基,约翰 51

Tukey, John 51

图灵,艾伦 60 - 70 , 98 , 99 , 105

Turing, Alan 60 - 70 , 98 , 99 , 105

-,停止问题 65 - 67

-,stop problem 65 - 67

-,照片62

-,photo 62

— 引用 105

-,quote 105

图灵,埃塞尔·萨拉61

Turing, Ethel Sara 61

图灵奖 70 , 109 , 129 , 135 , 158 , 166 , 175 , 194 , 236 , 249

Turing Award 70 , 109 , 129 , 135 , 158 , 166 , 175 , 194 , 236 , 249

图灵完备 64 , 65 , 70

turingcomplete 64 , 65 , 70

图灵机62 - 65 , 69 , 229

Turing machine 62 - 65 , 69 , 229

—图63

-,diagram 63

图灵测试 69

turing test 69

土耳其 19 , 36 , 37

Turkey 19 , 36 , 37

第二次世界大战 70 , 77 , 78 , 81 , 83 , 90 , 98 , 106 , 110 , 161 , 174 , 275 , 108 , 115 , 117

World War II 70 , 77 , 78 , 81 , 83 , 90 , 98 , 106 , 110 , 161 , 174 , 275 , 108 , 115 , 117

推特210 , 249

Twitter 210 , 249

U- 68潜艇

U-Boat 68

乌拉姆,斯坦尼斯拉夫83 - 87 , 89

Ulam, Stanislaw 83 - 87 , 89

-,照片84

-,photo 84

统一资源定位符(URL)180、187

uniform resource locator (URL) 180 , 187

皮埃尔和玛丽居里大学239

Université Pierre et Marie Curie 239

莱顿大学 130

Leiden University 130

布达佩斯大学 80

University of Budapest 80

加州大学伯克利分校128 , 150 , 168

University of California, Berkeley 128 , 150 , 168

加州大学洛杉矶分校(UCLA)150 , 156

University of California, Los Angeles (UCLA) 150 , 156

加州大学圣地亚哥分校237 , 243

University of California, San Diego 237 , 243

剑桥大学54 , 55 , 61 , 67 , 68 , 98 , 116 , 175 , 228 , 235 , 243 , 268

University of Cambridge 54 , 55 , 61 , 67 , 68 , 98 , 116 , 175 , 228 , 235 , 243 , 268

-,国王学院75 , 98 , 99

-,King's College 75 , 98 , 99

芝加哥大学228

University of Chicago 228

爱丁堡大学115 , 243

University of Edinburgh 115 , 243

日内瓦大学235

University of Geneva 235

伊利诺伊大学110 , 161 , 228

University of Illinois 110 , 161 , 228

伊利诺伊大学香槟分校181

University of Illinois at Urbana- Champaign 181

曼彻斯特大学 68,99

University of Manchester 68 , 99

-,计算机实验室99

-,Computing Machine Laboratory 99

马里兰大学187

University of Maryland 187

密歇根大学78 , 139 , 144 , 187

University of Michigan 78 , 139 , 144 , 187

蒙特利尔大学 247

University of Montreal 247

纽卡斯尔大学75

University of Newcastle 75

纽约大学167

New York University 167

牛津大学12 , 102 , 175 , 179

University of Oxford 12 , 102 , 175 , 179

巴黎大学235

University of Paris 235

宾夕法尼亚大学77 , 78

University of Pennsylvania 77 , 78

罗切斯特大学148

University of Rochester 148

斯德哥尔摩大学91

Stockholm University 91

萨塞克斯大学243

University of Sussex 243

多伦多大学128 , 239 , 242 , 243 , 244 , 246

University of Toronto 128 , 239 , 242 , 243 , 244 , 246

华盛顿大学183

University of Washington 183

都柏林94大学学院

University College Dublin 94

伦敦大学学院 243 , 260

University College London 243 , 260

南加州大学157

University of Southern California 157

乌尔西努斯学院77

Ursinus College 77

美国 51 , 70 , 83 , 138 , 148 , 158 , 168 , 187 , 194 , 208 , 213 , 242 , 274

United States 51 , 70 , 83 , 138 , 148 , 158 , 168 , 187 , 194 , 208 , 213 , 242 , 274

-,美国气象局74

-,US Weather Bureau 74

-,阿尔伯克基182

-,Albuquerque 182

-,波士顿83 , 170 , 229

-,Boston 83 , 170 , 229

-,布法罗240

-,Buffalo 240

-,剑桥129 , 150

-,Cambridge 129 , 150

-,切萨皮克湾 236

-,Chesapeake Bay 236

-,芝加哥 161

-,Chicago 161

-,辛辛那提77

-,Cincinnati 77

-,康涅狄格州90 , 156

-,Connecticut 90 , 156

-,达拉斯149

-,Dallas 149

-,达特茅斯105

-,Dartmouth 105

-,底特律 228

-,Detroit 228

-,韦恩堡 139

-,Fort Wayne 139

-,洛斯阿拉莫斯 83 , 87 , 89 , 161 , 275

-,Los Alamos 83 , 87 , 89 , 161 , 275

-,密尔沃基106

-,Milwaukee 106

-,蒙特雷165 , 166

-,Monterey 165 , 166

-,纽黑文156

-,New Haven 156

-,新泽西州135 , 161 , 240

-,New Jersey 135 , 161 , 240

-,新罗谢尔230

-,New Rochelle 230

-,纽约137 , 156 , 167 , 168 , 170 , 182

-,New York 137 , 156 , 167 , 168 , 170 , 182

-,宾夕法尼亚州70 -,匹兹堡106 , 107 , 109

-,Pennsylvania 70 -,Pittsburgh 106 , 107 , 109

-,旧金山106 , 157 , 170

-,San Francisco 106 , 157 , 170

-,圣达菲89

-,Santa Fe 89

-,圣莫尼卡 106 , 107 , 150

-,Santa Monica 106 , 107 , 150

-,西雅图182

-,Seattle 182

-,圣路易斯148

-,St. Louis 148

-,白原市 182

-,White Plains 182

-,约克镇高地213

-,Yorktown Heights 213

万斯·赛勒斯 220

Vance, Cyrus 220

英国68 , 74 , 98 , 116 , 158

United Kingdom 68 , 74 , 98 , 116 , 158

-,切尔滕纳姆174

-,Cheltenham 174

-,埃斯克代尔缪尔 75

-,Eskdalemuir 75

-,哈克诺尔 60

-,Hucknall 60

-,伦敦23 , 55 , 58 , 60 , 61 , 68 , 150 , 179 , 235 , 252 , 259

-,London 23 , 55 , 58 , 60 , 61 , 68 , 150 , 179 , 235 , 252 , 259

-,纽卡斯尔 75

-,Newcastle 75

-,沃尔沃斯54

-,Walworth 54

-,温布尔登243

-,Wimbledon 243

加密166

encryption 166

-非对称密钥167 - 174

-,asymmetric keys 167 - 174

-,攻击167

-,attack 167

-,键167

-,key 167

-密钥分发问题167 - 171

-,key distribution problem 167 - 171

-对称密钥 168

-,symmetric keys 168

分治算法12 , 14

divide-and-conquer algorithm 12 , 14

照明45 , 74

Lighting 45 , 74

二的平方根26

square root of two 26

-,计算 27

-,calculation of 27

越南战争116

Vietnam War 116

病毒式信息201

viral messages 201

VisiCalc 178

VisiCalc 178

蝴蝶效应 91

butterfly effect 91

预测29

predictions 29

预测误差202 , 205

prediction error 202 , 205

预览程序 101 , 112

preview procedure 101 , 112

威尔士 38

Wales 38

华尔街 181、182、187

Wall Street 181 , 182 , 187

沃尔玛194

Walmart 194

水库 23-24

water reservoir issue 23 - 24

气象局(美国) 参见美国、美国气象局

Weather Bureau (US) see United States, US Weather Bureau

通过数值过程进行天气预报 77

Weather Prediction by Numerical Process 77

网络

web

-,浏览器 180

-,browser 180

-,履带式192

-,crawler 192

-,超链接 180

-,hyperlink 180

-, 第179页

-,page 179

-,服务器180

-,server 180

-,搜索187 - 194

-,search for 187 - 194

提花织机54

Jacquard loom 54

韦尔奇曼,戈登68

Welchman, Gordon 68

沃博斯,保罗236

Werbos, Paul 236

— 引用236

-,quote 236

韦斯科夫,马琳79

Wescoff, Marlyn 79

摩尔定律 93 - 94

Moore's law 93 - 94

科学文章 55

scientific article 55

旋风电脑139

Whirlwind computer 139

维纳,诺伯特229

Wiener, Norbert 229

WiFi 50

WiFi 50

葡萄园,阿德里安范131 , 135

Vineyards, Adriaan van 131 , 135

威廉姆森,马尔科姆174 - 175

Williamson, Malcolm 174 - 175

万维网WWW180 - 181、186、187 - 195​

World Wide Web (WWW) 180 - 181 , 186 , 187 - 195

万维网联盟(W3C) 181

World Wide Web Consortium (W3C) 181

沃兹尼亚克,史蒂夫178

Wozniak, Steve 178

施乐PARC 155,178

Xerox PARC 155 , 178

Yee-Whye Teh 244

Yee-Whye Teh 244

雅虎 249

Yahoo 249

耶鲁大学26 , 220

Yale University 26 , 220

YBC 7289 25 - 27

YBC 7289 25 - 27

-,照片25

-,photo 25

扎格罗斯山脉 22

Zagros Mountains 22

埃拉托斯特尼筛法 33 - 35

sieve of Eratosthenes 33 - 35

海战(游戏) 129

naval battle (game) 129

101

set 101

搜索

to search

-,详尽108 , 119 - 126 , 188

-,exhaustive 108 , 119 - 126 , 188

-,启发式109 , 114

-,heuristic 109 , 114

周必算精 42

Zhoubi Suanjing 42

祖冲之42

Zu Chongzhi 42

扎克伯格,马克197 - 201

Zuckerberg, Mark 197 - 201

-,照片198

-,photo 198

南非 235

South Africa 235

韩国251 - 252

South Korea 251 - 252

-,首尔251

-,Seoul 251

苏黎世70 , 80

Zurich 70 , 80

楚泽,康拉德 70

Zuse, Konrad 70

黑海21

Black Sea 21

瑞士 43,245

Switzerland 43 , 245